如何使用Code :: Blocks在linux上使用mingw进行交叉编译?

时间:2013-03-16 17:28:48

标签: linux c++11 mingw cross-compiling codeblocks

所以我在linux上使用i586-mingw32msvc编译器来编译windows。 Code :: Blocks的配置与this站点类似。一切都很好,直到我尝试编译 C ++ 11 代码并且编译器说:cc1plus: error: unrecognized command line option "-std=c++0x",然后我意识到mingw32编译器对于C ++ 11代码来说太旧了。 / p>

所以我安装了mingw-w64并在菜单设置 - > Compiler->工具链中的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 finished: 0 errors, 0 warnings (0 minutes, 0 seconds) ===|

没有编译任何内容。谁知道发生了什么?

2 个答案:

答案 0 :(得分:2)

Output size is 107,04 KB

所以你得到了一个大小为107kB的可执行文件。这没什么?

||=== Build finished: 0 errors, 0 warnings

我很高兴你的位置......你是否想要编译错误作为编译器运行的证据?

答案 1 :(得分:0)

我解决了这个问题,所以我自己回答,也许对其他人来说这会很有帮助,所以我只需要添加以下链接器选项:-static-libgcc -static-libstdc++ -L就是这样。