【发布时间】:2013-03-16 17:28:47
【问题描述】:
所以我在 linux 上使用 i586-mingw32msvc 编译器为 windows 编译。 Code::Blocks 的配置类似于this 站点。一切都很好,直到我尝试编译 C++11 代码并且编译器说:cc1plus: error: unrecognized command line option "-std=c++0x",然后我才意识到 mingw32 编译器对于 C++11 代码来说太旧了。
所以我安装了mingw-w64,并在菜单Settings->Compiler->Toolchain 的Code::Blocks 中将i586-mingw32msvc 更改为i686-w64-mingw32。搜索目录也已更改。
现在,当我尝试编译 C++11 代码时,我得到了这个(构建日志):
i686-w64-mingw32-g++ -Wall -fexceptions -std=c++0x -DWINVER=0x0400 -D__WIN95__ -D__GNUWIN32__ -DSTRICT -DHAVE_W32API_H -D__WXMSW__ -D__WINDOWS__ -I/usr/i686-w64-mingw32/include -c /home/me/program/p1/main.cpp -o obj/Release/win/main.o
i686-w64-mingw32-g++ -L/usr/i686-w64-mingw32/lib -o bin/Release/win/p1 obj/Release/win/main.o -lstdc++ -lgcc -lodbc32 -lwsock32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -lodbc32 -ladvapi32 -lodbc32 -lwsock32 -lopengl32 -lglu32 -lole32 -loleaut32 -luuid
Output size is 107,04 KB
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings (0 minutes, 0 seconds)
并且 Build Messages 仅显示以下一行:
||=== Build finished: 0 errors, 0 warnings (0 minutes, 0 seconds) ===|
就像没有编译一样。有谁知道发生了什么?
【问题讨论】:
-
我建议在
i686-w64-mingw32-g++之后添加-v -
-v是什么意思,我可以在代码块的什么地方添加这个选项? -
也就是说,用
i686-w64-mingw32-g++ -v编译以了解真正发生的事情......我不知道你的代码块是什么(可能是一些无用的IDE)。您总是可以在某个终端中键入编译命令... -
There 是我通过选项
-v得到的全部,我看不出有什么不好。你说 c::B 没用,那么你更喜欢哪个 IDE? :) -
我没有使用任何 IDE,我使用的是
emacs。有人称它为 IDE,我称它为编辑器。
标签: linux c++11 mingw cross-compiling codeblocks