我一直在研究一个项目(一个特定的游戏),我觉得我应该重新开始使用不同的库。因此,当我这样做时,我重新安装Code::Blocks并设置我的新库和包括。
但到目前为止,我有一个问题,开始你[我的新项目测试是否所有包括工作。这个问题是:libstdc++-6.dll was not found.
起初我想知道我是否可以在网上找到这个文件,但它无处可寻(或至少我搜索过的很多地方......)不久之后,我尝试加载我的旧项目,同样的问题再次发生(奇怪...... ._。)我在想它可能是我的编译器,所以我使用了我的旧编译器,它做了同样的事情!此刻我明天就解决了这个问题(今天是这个问题)
所以我的问题是:如果有其他人遇到这个问题,你会如何解决?
我在Windows Vista 32位上使用Code :: Blocks with MinGW作为编译器。
*****编辑*****
以下是我项目中的Build选项。请注意,这些是Project中的设置,而不是全局编译器:
在(项目名称) - >编译器设置 - >其他选项:
(我使用//
来分离命令)
-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
在搜索目录中,我有MinGW / bin和MinGW / lib目录的链接,以及到不同库的其他链接。
我的编译器是MinGW,一个用于Windows 32位的GNU GCC编译器。 IDE是Codeblocks。另请注意,在项目的“调试”和“发布”设置中,没有任何内容。
大多数这些设置也是我从Ogre3D Application setup tutorial获得的部分,如果有任何帮助。
如果您使用MingW在Windows上编译C ++代码,您可能希望添加选项-static-libgcc
和-static-libstdc++
以静态链接C和C ++标准库,从而无需随身携带这些库的任何单独副本。库的版本管理在Windows中很痛苦,所以我发现这种方法是创建Windows二进制文件的最快,最干净的解决方案。
据我所知,这是C ++运行时库。所以这取决于你用来创建你的程序的编译器(新版本将包含一些C ++ 0x的东西,旧的版本可能不会例如。它取决于编译器及其版本)。
如果您使用MinGW,那么您应该使用libstdc ++ - 6.dll找到此编译器的文件夹。 MinGW / bin文件夹应该是您在计算机上搜索它的地方。
如果将此文件复制到与可执行文件相同的目录中,则应该没问题。
只需从mingw目录中删除libstdc ++ - 6.dll.a \ libstdc ++。dll.a就可以解决这个问题。
我尝试使用标志-static-libstdc ++,但这对我不起作用。我找到了解决方案: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
查看所有内容!)
我不知道为什么前一位作者使用gcc和-stdc ++。我没有看到任何理由不使用g ++来自动链接stdc ++ ......据我所知,提供其他好处(毕竟它是c ++编译器)。
对于使用eclipse进行c / c ++但运行* .exe文件并出错的windows用户很有用:“缺少libstdc ++ 6.dll”
4种解决方法
注意:文件“libstdc ++ - 6.dll”位于文件夹“{{MinGW的安装路径}} / bin”
我在Fedora 20下使用Eclipse与MinGW进行交叉编译。使用这些设置,程序将不再要求libstdc ++ - 6.dll。
项目类型 - 跨GCC
交叉设置
跨GCC编译器
Cross G ++编译器
Cross G ++ Linker
我将libstdc ++ - 6.dll文件放在生成exe文件的同一文件夹中。
您只需要在系统环境变量中将“mingw-install-directory”/ bin /添加到Path中......就是这样!