Как решить ошибку ссылки «неразрешенный внешний символ» в Visual C ++? - PullRequest
3 голосов
/ 14 октября 2011

У меня Visual Express C ++ 2008 Express Edition.

Я пытаюсь скомпилировать программу, но получаю следующее сообщение об ошибке:

1>MSVCRT.lib(wcrtexew.obj) : error LNK2001: unresolved external symbol _wWinMain@16

Что я пытался сделать:

Я нашел это в Google:

For Visual C++ .NET: In the Advanced category of the Linker folder in the Project Properties dialog box, set the Entry Point to wWinMainCRTStartup.

Он должен был работать, но не работал. Как мне скомпилировать это приложение?

Код тупо прост:

#include "stdafx.h"
int main( int argc, char ** argv )
{
}

Ответы [ 3 ]

7 голосов
/ 14 октября 2011

Есть несколько способов решить эту проблему:

  1. Создать консольное приложение
  2. Изменить консоль подсистемы теперь в настройках компоновщика (Настройки проекта -> Линкер -> Система ->Подсистема (выберите Консоль))
  3. Измените точку входа в настройках компоновщика на mainCRTStartup (Настройки проекта -> Компоновщик -> Дополнительно -> Точка входа)
  4. Определите int CALLBACK WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow ); вместоиз int main(int argc, char const ** argv)

  5. Изменение набора символов для использования набора символов Unicode (Настройки проекта -> Общие-> Набор символов)

3 голосов
/ 14 октября 2011

Похоже, что при создании проекта вы выбрали программу с графическим интерфейсом (Win32, MFC и т. Д.).Эти программы имеют WinMain () вместо main ().

То, что вы хотите, это консольный проект.

1 голос
/ 14 октября 2011

Согласно подобным вопросам , эта ошибка возникает, когда main не определено.

Возможно, по какой-то причине он компилирует другой файл?

Этот ответ предполагает, что, возможно, ваши флаги несовместимы.

...