我希望有人能在这里帮助/指导我。我有一个工作的应用程序,但今天我不断得到以下错误:
LNK2019 unresolved external symbol main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)
唯一的变化是我将VS 2017 15.5.4更新为VS 2017 15.6.1(最新)。我一直在这里和那里阅读,我相信某处的一些设置可能已经改变,现在程序未能“看到”主要功能。声明一下,我确实在我的笔记本电脑上尝试了这个代码,它仍然有VS 2017 15. 5. 4,运行没有任何问题。任何想法,它可能是什么?
7条答案
按热度按时间uujelgoq1#
检查项目配置。
右键单击项目-〉属性-〉链接器-〉系统-〉子系统。
您可能希望将其设置为
Windows (/SUBSYSTEM:WINDOWS)
mrphzbgm2#
我找不到一个解决办法。我不得不做一个新的项目,把所有的东西都搬到那里。
3wabscal3#
当我链接SDL2库时,我得到了这个错误,但是只包含SDL2.lib,忘记了SDL2main.lib。当我在源代码中包含sdl. h时,错误立即出现,而没有直接调用代码中的任何SDL函数。由于引用了
invoke_main(void)
,我感到困惑,因此没有怀疑链接时丢失了任何外部库。iqih9akk4#
检查以下几点:
1.包含main函数的.c/.cpp文件是否添加到vsproject文件中?
1.确保选择“配置-〉C/C++ -〉高级-〉调用转换-〉__cdelc(/Gd)”
jchrr9hc5#
这对我很有效:
1.在解决方案资源管理器中,右键单击包含main()函数的文件,并将其从项目中排除。
1.右键单击“项目”并选择“添加现有项”,然后将排除的文件添加回“项目”。
1.清理项目并生成。
3pmvbmvn6#
如果您正在使用CMake项目-很可能您的项目中有
CMakeLists.txt
调用add_executable(MY_TARGET my_source.cpp)
,并且此目标的源文件名不同。这就是为什么在我的情况下发生这个错误。
xxb16uws7#
尝试包含tchar. h头文件,沿着windows.h:
此外,链接器子系统属性应为
Windows (/SUBSYSTEM:WINDOWS)