C++ libstdc&x2B+-找不到6.dll
我一直在做一个项目(具体来说是一个游戏),我觉得我应该从不同的库开始。因此,在执行此操作时,我重新安装并设置了我的新库和include 但是到目前为止,我在启动u[我的新项目以测试是否所有的工作时遇到了一个问题。这个问题是:C++ libstdc&x2B+-找不到6.dll,c++,mingw,libraries,C++,Mingw,Libraries,我一直在做一个项目(具体来说是一个游戏),我觉得我应该从不同的库开始。因此,在执行此操作时,我重新安装并设置了我的新库和include 但是到目前为止,我在启动u[我的新项目以测试是否所有的工作时遇到了一个问题。这个问题是:libstdc++-6.dll没有找到。起初我想知道我是否可以在线找到这个文件,但它却找不到(或者至少在我搜索过的许多地方……)不久之后,我尝试加载我的旧项目,但同样的问题再次发生(wierd…)。我想这可能是我的编译器,所以我使用了我的旧编译器,它做了同样的事情!此时我将问
libstdc++-6.dll没有找到。
起初我想知道我是否可以在线找到这个文件,但它却找不到(或者至少在我搜索过的许多地方……)不久之后,我尝试加载我的旧项目,但同样的问题再次发生(wierd…)。我想这可能是我的编译器,所以我使用了我的旧编译器,它做了同样的事情!此时我将问题推迟到明天(即今天)解决
所以我的问题是:如果其他人有这个问题,你会如何解决
在Windows Vista 32位上,我使用代码::块和MinGW作为编译器
*****编辑*****
以下是我的项目中的生成选项。请注意,这些是项目中的设置,而不是全局编译器:
在(项目名称)->编译器设置->Otehr选项中:
-static-libstdc++//
-static-libgcc//
-Wl,--enable-auto-image-base//
-Wl,--add-stdcall-alias//
-Wl,--enable-auto-import//
(我使用/
来分隔命令)
在(项目名称)->编译器设置->#定义:
在(项目名称)->链接器设置->其他链接器选项中:
-static-libstdc++//
-static-libgcc//
-Wl,--enable-auto-image-base//
-Wl,--add-stdcall-alias//
-Wl,--enable-auto-import//
在linker->link库中,我有各种指向扩展名为.a
的文件的链接,这些文件包括Bullet PHysics、Ogre3D和SFML
在搜索目录中,我有指向MinGW/bin和MinGW/lib目录的链接,以及指向不同库的其他链接
我的编译器是MinGW,一个用于windows 32位的GNU GCC编译器。IDE是代码块。还要注意的是,在项目的调试和发布设置中,什么都没有
这些设置大部分也是从有帮助的IF中得到的。
< P>我知道,这是C++运行库。它取决于你用来创建程序的编译器(一个新版本将包含一些C++ 0x的东西,一个旧版本可能不会。例如,它取决于编译器和它的版本)。 如果使用MinGW,则应使用此编译器文件夹中的libstdc++-6.dll。MinGW/bin文件夹应是在计算机上搜索它的位置如果你将文件复制到你的可执行文件的同一目录,则应该是正确的。 如果你在Windows上使用明文编译C++代码,你可能会添加选项>代码>静态LBGCC 和
我在中找到了解决方案:我使用Fedora20下的Eclipse和MinGW进行交叉编译。 使用这些设置,程序将不再要求libstdc++-6.dll 项目类型-交叉GCC 交叉设置
- 前缀:x86_64-w64-mingw32-
- 路径:/usr/bin
- 命令:gcc
- 所有选项: -I/usr/x86_64-w64-mingw32/sys root/mingw/include-O3 -墙-c-fmessage长度=0
- 包括:/usr/x86_64-w64-mingw32/sys root/mingw/include
- 命令:g++
- 所有选项:-I/usr/x86_64-w64-mingw32/sys root/mingw/include-O3 -墙-c-fmessage长度=0
- 包括:/usr/x86_64-w64-mingw32/sys root/mingw/include
- 命令: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
- 库搜索路径(-L): /usr/x86_64-w64-mingw32/sys root/mingw/lib /usr/x86_64-w64-mingw32/sys root/mingw/bin
-lstdc++-lm
,而不是g++
我没有注意到这些选项,并添加了:-static libgcc-static libstdc++
我仍然得到了错误,最终意识到我使用的是gcc,并将编译器更改为g++并删除了-stdc++和-lm
,所有链接都很好
(我使用的是LINK.c而不是LINK.cpp…使用make-pn | less
来查看所有的功能!)
我不知道为什么以前的作者用GST-+STDC + +。我不认为没有理由不使用G++来与STDC++自动链接……据我所知,提供其他好处(毕竟是C++编译器)
4种解决方法-static-libstdc++//
-static-libgcc//
-Wl,--enable-auto-image-base//
-Wl,--add-stdcall-alias//
-Wl,--enable-auto-import//