找不到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文件的相同文件夹中。