我有一个MFC C++项目,它在Windows10上使用VisualStudio2022构建和运行非常好,这个项目根本不使用Qt。在我用vcpkg安装了QT6.2.1之后,项目停止了使用以下链接器错误构建:
1>Qt6EntryPoint.lib(qtentrypoint_win.cpp.obj) : error LNK2019: unresolved external symbol main referenced in function WinMain同样,在我的项目中没有使用Qt6。进入项目的Configuration Properties并禁用Use Vcpkg使其重新构建。这里发生了什么,如何在不禁用vcpkg的情况下修复它?
我用VS项目向导和默认设置创建了一个新的C++ MFC。在启用vcpkg的情况下,它构建得很好。
我能给出的唯一合理的解释是,几代前,老的和老的Windows,我的项目使用了几个来自Qt4核心的类,这造成了问题,所以功能被删除了。在没有安装Qt的情况下,我继续在Windows上开发它。是否有可能某些对Qt的引用仍然潜伏在周围?怎么找到它?我检查了几次设置,都找不到。
我查看了库搜索(/VERBOSE:Lib)的顺序,在启用vcpkg -> Use Autolink之后,首先搜索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"没有任何影响。还有别的办法排除它吗?
发布于 2021-12-17 21:20:50
这意味着您应该在vcpkg中打开一个问题。
Qt6EntryPoint.lib需要移动到/ subfolder子文件夹中。
(我真的讨厌MSBuild自动链接/链接vcpkg的所有特性。)
https://stackoverflow.com/questions/70269013
复制相似问题