【发布时间】:2015-09-13 08:49:41
【问题描述】:
我正在使用 MinGW 在 Eclipse C/C++ Mars Edition 中编译简单的 Hello World。
代码:
#include <iostream>
using namespace std;
int main(){
cout << "Hello World!" << endl;
}
编译器标志:
-I"H:\Eclipse\Workspace\Project" -O0 -Wall -static -static-libgcc
错误:
multiple definitions of '__gcc_deregister_frame'
multiple definitions of '__gcc_register_frame'
multiple definitions of '_argc'
multiple definitions of '_argv'
multiple definitions of '_mingw32_init_mainargs'
multiple definitions of '_onexit'
multiple definitions of 'atexit'
multiple definitions of 'mainCRTStartup'
multiple definitions of 'WinMainCRTStartup;
【问题讨论】:
-
去掉链接器自动添加的
-static-libgcc。同样对于 c++ 它应该是-static-libstdc++ -
FWIW,我无法使用(交叉编译)命令
mingw32-g++ -O0 -Wall -static -static-libgcc foo.cpp重现此内容; (尽管有些标志可能是多余的,但它编译和链接都成功)。您需要 a) 学习从命令行测试编译命令,(不依赖任何 IDE 作为拐杖),以及 b) 显示您的 IDE 调用的命令的完整文本代表。这似乎不是 MinGW 问题;更有可能是您的 IDE/项目配置有问题。