问题描述
|
我正在尝试编译我的Win32应用程序,但出现以下错误:
c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../libmingw32.a(main.o):main.c:(.tex
t+0xd2): undefined reference to `WinMain@16\'
collect2: ld returned 1 exit status
这是编译器命令的样子:
g++ -Wl,--subsystem,windows foo.cpp
这很奇怪,因为我确信这以前曾经起作用。 (但是,当时我使用的是Windows XP。)
注意:我在Windows 7(64位)上使用mingw32。
解决方法
你有:
完整的WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPWSTR lpCmdLine,int nCmdShow)
它应该是:
完整的WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
因此sig不匹配,链接器找不到它。
, 要解决此问题,我建议:
单独编译和链接,因此您将获得一个目标文件(使用
g++ -c
)
转储来自所述目标文件的导出名称列表(使用nm
或objdump
)