Использование vcpkg с Visual Studio 2022 приводит к фиктивной неразрешенной ошибке компоновщика внешних символов.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Использование vcpkg с Visual Studio 2022 приводит к фиктивной неразрешенной ошибке компоновщика внешних символов.

Сообщение Anonymous »

У меня есть проект MFC C++, который отлично компилируется и работает с Visual Studio 2022 в Windows 10. Проект вообще не использует Qt. После того, как я установил Qt 6.2.1 с помощью vcpkg, сборка проекта прекратилась из-за этой ошибки компоновщика:

Код: Выделить всё

1>Qt6EntryPoint.lib(qtentrypoint_win.cpp.obj) : error LNK2019: unresolved external symbol main referenced in function WinMain
Опять же, в моем проекте Qt6 не используется. Если перейти к свойствам конфигурации проекта и отключить использование Vcpkg, он будет построен заново. Что здесь происходит и как это исправить, не отключая vcpkg?

Я создал новое приложение C++ MFC с мастером проектов VS и настройками по умолчанию. Он прекрасно собирается с включенным vcpkg.

Единственное разумное объяснение, которое я могу предложить, это то, что много поколений назад, в более старой VS, в более старой Windows, мой проект использовал какое-то время было несколько классов из ядра Qt4, что вызывало проблемы, поэтому функциональность была удалена. Я продолжал разрабатывать его в Windows без установленного Qt. Возможно ли, что какая-то ссылка на Qt все еще скрывается? Как его найти? Я несколько раз проверял настройки и ничего не нашел.

Посмотрел порядок поиска в библиотеке (

Код: Выделить всё

/VERBOSE:Lib
) и при включенном vcpkg -> Использовать автоссылку в первую очередь выполняется поиск в папках vcpkg. Есть ли способ сначала создать папки системы поиска компоновщика?
Вот что происходит:

Код: Выделить всё

1>    Searching C:\src\vcpkg\installed\\x64-windows\lib\Qt6EntryPoint.lib:
1>      Found WinMain
1>        Referenced in msvcrt.lib(exe_winmain.obj)
1>        Loaded Qt6EntryPoint.lib(qtentrypoint_win.cpp.obj)
Исключение Qt6EntryPoint.lib с помощью /NODEFAULTLIB:"Qt6EntryPoint.lib" не имеет никакого эффекта. Есть ли другой способ исключить его?

Подробнее здесь: https://stackoverflow.com/questions/702 ... nal-symbol
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»