Mol*_*pic 44 c++ mingw libraries
我一直在研究一个项目(一个特定的游戏),我觉得我应该重新开始使用不同的库.因此,当我这样做时,我重新安装了Code :: Blocks并设置了我的新库和包含.
但到目前为止,我有一个问题,开始你[我的新项目测试是否所有包括工作.这个问题是:libstdc++-6.dll was not found.起初我想知道我是否可以在网上找到这个文件,但它无处可寻(或至少我搜索过的很多地方......)不久之后,我尝试加载我的旧项目,并且同样的问题再次发生(奇怪...... ._.)我在想它可能是我的编译器,所以我使用了我的旧编译器,它做了同样的事情!此刻我明天就解决了这个问题(今天是这个问题)
所以我的问题是:如果有其他人遇到这个问题,你会如何解决?
我在Windows Vista 32位上使用Code :: Blocks with MinGW作为编译器.
*****编辑*****
以下是我项目中的Build选项.请注意,这些是Project中的设置,而不是全局编译器:
在(项目名称) - >编译器设置 - > Otehr选项中:
(我//用来分隔命令)
-mthreads//
-fmessage-length=0//
-fexceptions//
-fident//
Run Code Online (Sandbox Code Playgroud)
在(项目名称) - >编译器设置 - > #define:
WIN32//
_WINDOWS//
Run Code Online (Sandbox Code Playgroud)
在(项目名称) - >链接器设置 - >其他链接器选项:
-static-libstdc++//
-static-libgcc//
-Wl,--enable-auto-image-base//
-Wl,--add-stdcall-alias//
-Wl,--enable-auto-import//
Run Code Online (Sandbox Code Playgroud)
在链接器 - >链接库中,我有各种带有.a扩展名的文件的链接,这些文件包括Bullet PHysics,Ogre3D和SFML
在搜索目录中,我有MinGW/bin和MinGW/lib目录的链接,以及到不同库的其他链接.
我的编译器是MinGW,一个用于Windows 32位的GNU GCC编译器.IDE是Codeblocks.另请注意,在项目的"调试"和"发布"设置中,没有任何内容.
大多数这些setings也是我从Ogre3D应用程序设置教程中获得的部分,如果有任何帮助的话.
Ker*_* SB 90
如果您使用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++ 编译器)。