找不到libstdc ++ – 6.dll
我一直在做一个项目(一个游戏具体),我觉得我应该从不同的图书馆重新开始。 所以当我这样做时,我重新安装了Code :: Blocks并设置了我的新库和包括。
但截至目前我有一个问题开始你(我的新项目来testing,如果所有的包括工作。 这个问题是: libstdc++-6.dll was not found.
起初,我想知道我是否可以在网上find这个文件,但是找不到它(或者至less是我search过的许多地方)。不久之后,我尝试装载我的旧项目,同样的问题再次发生(奇怪的……)我在想也许是我的编译器,所以我使用了我的旧编译器,它做了同样的事情! 在这一刻,我把这个问题解决了,明天(今天是这样)
所以我的问题是:如果有其他人有这个问题,你将如何解决?
Im使用Code :: Blocks和MinGW作为Windows Vista 32位的编译器。
*****编辑*****
这是我的项目中的生成选项。 请注意,这些是Project中的设置,而不是全局编译器:
在(项目名称) – >编译器设置 – > Otehr选项:
(我用//
来分隔命令)
-mthreads// -fmessage-length=0// -fexceptions// -fident//
在(项目名称) – >编译器设置 – > #define中:
WIN32// _WINDOWS//
在(项目名称) – >链接器设置 – >其他链接器选项:
-static-libstdc++// -static-libgcc// -Wl,--enable-auto-image-base// -Wl,--add-stdcall-alias// -Wl,--enable-auto-import//
在链接器链接库中,我有扩展名为.a
文件的各种链接,这些文件包括Bullet PHysics,Ogre3D和SFML
在search目录中,我有链接到MinGW / bin,MinGW / lib目录,以及其他链接到不同的库。
我的编译器是MinGW,一个用于windows 32位的GNU GCC编译器。 IDE是Codeblocks。 另请注意,在项目的debugging和发布设置中,没有任何内容。
大多数这些setings也是件,我从Ogre3D应用程序安装教程中得到,如果有任何帮助。
如果您正在使用MingW在Windows上编译C ++代码,则可能需要添加选项-static-libgcc
和-static-libstdc++
来静态链接C和C ++标准库,因此不必携带任何单独的副本。 库的版本pipe理在Windows中是一个痛苦的事情,所以我发现这种方法是创buildWindows二进制文件的最快速,最干净的解决scheme。
据我所知,这是C ++运行时库。 所以这取决于你用来创build你的程序的编译器(一个新版本将包含一些C ++ 0x的东西,旧版本可能不会,例如,它取决于编译器及其版本)。
如果您使用MinGW,那么您应该使用在此编译器的文件夹中find的libstdc ++ – 6.dll。 MinGW / bin文件夹应该是您的计算机上search它的地方。
如果您将该文件复制到与可执行文件相同的目录中,则应该可以。
只需从mingw目录中删除libstdc ++ – 6.dll.a \ libstdc ++。dll.a即可修复此问题。
我尝试使用标志-static-libstdc ++,但这不适合我。 我find了解决scheme: http : //ghc.haskell.org/trac/ghc/ticket/4468#
这个错误也发生在使用gcc编译MinGW时出现以下选项: -lstdc++ -lm
,而不是g ++
我没有注意到这些选项,并添加了: -static-libgcc -static-libstdc++
我仍然得到了错误,终于意识到我正在使用gcc,并将编译器更改为g ++,并删除了-stdc++ and -lm
,一切正常。
(我正在使用LINK.c而不是LINK.cpp …使用make -pn | less
来查看所有的事情!)
我不知道为什么以前的作者用-stdc ++使用gcc。 我没有看到任何理由不使用g ++,它会自动链接到stdc ++ …并据我所知,提供其他好处(毕竟它是c ++编译器)。
我使用Fedora 20下的Eclipse和MinGW进行交叉编译。 使用这些设置,程序不会再要求libstdc ++ – 6.dll。
项目types – 跨GCC
交叉设置
- 前缀:x86_64-w64-mingw32-
- path:/ usr / bin
跨GCC编译器
-
命令:gcc
-
所有选项:-I / usr / x86_64-w64-mingw32 / sys-root / mingw / include -O3 -Wall -c -fmessage-length = 0
-
包括:/ usr / x86_64-w64-mingw32 / sys-root / mingw / include
跨G ++编译器
-
命令:g ++
-
所有选项:-I / usr / x86_64-w64-mingw32 / sys-root / mingw / include -O3 -Wall -c -fmessage-length = 0
-
包括:/ usr / x86_64-w64-mingw32 / sys-root / mingw / include
跨G ++链接器
-
命令:g ++ -static-libstdc ++ -static-libgcc
-
所有选项:-L / usr / x86_64-w64-mingw32 / sys-root / mingw / lib -L / usr / x86_64-w64-mingw32 / sys-root / mingw / bin
-
库searchpath(-L):
的/ usr / x86_64的-W64-的mingw32 / SYS-根/ MinGW的/ lib中
的/ usr / x86_64的-W64-的mingw32 / SYS-根/ MinGW的/ bin中
我将libstdc ++ – 6.dll文件放在生成exe文件的相同文件夹中。