我试图在Windows 7上使用Code:: Blocks 12.11和这些编译器标志(在项目 > 链接器设置 > 其他链接器设置中)使用MinGW 4.7.1编译Allegro 5:
-static-libgcc
-static-libstdc++
结果:
unrecognized command line option '-static-libstdc++'
如何解决?
我试图在Windows 7上使用Code:: Blocks 12.11和这些编译器标志(在项目 > 链接器设置 > 其他链接器设置中)使用MinGW 4.7.1编译Allegro 5:
-static-libgcc
-static-libstdc++
结果:
unrecognized command line option '-static-libstdc++'
如何解决?
g++ --version
是什么版本?我不确定它引入的确切版本,但是 -static-libstdc++
是最近才加入的。在此之前,您需要像这样做:-static -lstdc++ -dynamic
。(如果编译器版本为 4.7.1,则不应该有问题,但我不知道 MinGW 版本与实际编译器版本的映射关系)。
g++ --version
给出的,因为它是编译在内的。但正如另一个发帖者所说:找到库所在的位置,看看是否有libstdc++.a
。如果没有,请下载一个。并确保它在同一个目录中;如果g++在较早的目录中发现了一个libstdc++.so
,它就不会再查找了。 - James Kanzelibstdc++.a
的显式路径,并且只使用了“其他链接器选项”:-static-libgcc
进行编译。但是它显示了以下错误信息:undefined reference to
_Unwind_Resume'和
undefined reference to __gxx_personality_v0'
。 - topright gamedev-static-libgcc -static-libstdc ++
链接器标志与mingw一起使用时,也可能会发生这种情况。在此处阅读更多信息:https://stackoverflow.com/questions/50779224/exceptions-not-caught-when-linking-static-libs - vgulkevic我没有测试过,但尝试将其分开为-static -libstdc++
libstdc
搜索)。 - topright gamedev以下链接可以帮助您。它解释了如何在C++中链接静态库。 http://www.trilithium.com/johan/2005/06/static-libstdc/