无法编译Win32应用程序

时间:2011-06-25 11:10:32

标签: winapi mingw

我正在尝试编译我的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。)

注意:我在使用mingw32的Windows 7,64位。

2 个答案:

答案 0 :(得分:3)

你有:

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPWSTR lpCmdLine,int nCmdShow)

应该是:

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow)

所以sig没有匹配,链接器也找不到它。

答案 1 :(得分:1)

要解决此问题,我建议:

  1. 单独编译和链接,以便获得目标文件(使用g++ -c
  2. 转储所述目标文件中的导出名称列表(使用nmobjdump