Я хотел создать новый проект С++ и начать кодирование. Я работаю в существующем решении с более чем 30 проектами. Поэтому вместо main() используется GwMain(..). Это работает для всех других файлов, но не когда я создаю новый проект С++. Я получаю ошибку компоновщика:
LNK2019 unresolved external symbol _main referenced in function "int__cdel invoke_main(void)" (?invoke_main@@YAHXZ)
File: MSVCRTD.lib(exe_main.obj)
- Я уже сравнивал конфиги свойств с другими проектами, и они почти такие же. Решение перенесено с Visual Studio 2012 на 2019. Думаю, это одна из причин, почему оно не работает так, как должно.
Я уже проверил это: Linker->System->SubSystem -> Windows.
И когда я меняю его с консоли на окна, он показывает это:
Неразрешенный внешний символ LNK2019 _WinMain, указанный в функции "int__cdel invoke_main(void)" (?invoke_main@@YAHXZ)
- И я не использую cmake
- Когда я использую int main(){return 0;}, я не получаю ошибок, но мне приходится использовать GwMain()
- Когда я меняю EntryPoint в разделе Advanced, я получаю больше ошибок. Пробовал вставить GwMain.
Код примерно такой:
#include <gwcore.hpp>
#include <gw.hpp>
int GwMain(int, char**)
{
return 0;
}
Здесь используется очень старый фреймворк Grit.
GwMain
будет вызываться из библиотечной функцииmain
(предположительно окруженной некоторым кодом инициализации и/или демонтажа, который необходимо запустить до/послеGwMain
. Я не знаком с этим, и не писал код для Windows уже много лет. - person Mats Petersson   schedule 18.02.2020