Не могу найти точку входа - PullRequest
0 голосов
/ 18 февраля 2020

Я хотел создать новый проект на C ++ и начать писать код. Я работаю в существующем решении с более чем 30 проектами. Поэтому вместо main () используется GwMain (..). Это работает для всех других файлов, но не при создании нового проекта C ++. Я получаю сообщение об ошибке компоновщика:

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.

    И когда я изменяю его с консоли на windows, он показывает это:

    LNK2019 неразрешенный внешний символ _WinMain, на который ссылается функция «int__cdel invoke_main (void)» (? Invoke_main @ @YAHXZ)

  • И я не использую cmake
  • Когда я использую int main () {return 0;}, я не получаю ошибок, но я должен использовать GwMain ()
  • Когда я изменяю в Advanced на EntryPoint, я на самом деле получаю больше ошибок. Я попытался вставить GwMain.

Код выглядит так:

#include <gwcore.hpp>
#include <gw.hpp>

int GwMain(int, char**)
{

    return 0;
}

Грит используется здесь очень старый фреймворк.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

После проверки всех параметров компиляции и связывания с другими проектами, которые работают нормально.

В своем решении выберите проект, который работает (и который использует GwMain). Правая кнопка-> свойство и проверьте его зависимости в «общих свойствах»:

enter image description here

Выполните эту манипуляцию над другими проектами, которые работают правильно (и которые используют GwMain) и попробуйте выяснить, существует ли общая зависимость , которая позволяет им использовать GwMain, затем попытайтесь добавить эту зависимость в ваш проект, который не работает

0 голосов
/ 18 февраля 2020

Проверьте «Проект»> «Свойства»> «Основные»> «Параметры проекта по умолчанию»> «Тип конфигурации».

Если это «.exe», то для этого проекта требуется основной файл. Иначе, если это ".dll" или ".lib", ваш код должен скомпилироваться.

...