Невозможно скомпилировать приложение Win32 - PullRequest
2 голосов
/ 25 июня 2011

Я пытаюсь скомпилировать мое приложение 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.)

Примечание: я использую 64-разрядную версию Windows 7, используя mingw32.

Ответы [ 2 ]

3 голосов
/ 25 июня 2011

У вас есть:

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

Должно быть:

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

Так что sig не соответствует и компоновщик не может его найти.

1 голос
/ 25 июня 2011

Чтобы устранить эту проблему, я предлагаю:

  1. Компилировать и ссылаться отдельно, чтобы вы получили объектный файл (используйте g++ -c)
  2. Создать список экспортированных имен из указанногообъектный файл (используйте nm или objdump)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...