解决办法:在项目-》属性-》配置属性-》常规-》字符集中,将当前项目的字符集选项改为使用多字节字符集。(一般VS默认的字符集为Unicode字符集)
参考网站:https://blog.csdn.net/alger_magic/article/details/79025079
解决办法:在对应代码位置,添加如下代码:
#ifdef __cplusplus
#define __STDC_CONSTANT_MACROS
#endif
我的项目添加代码后编译顺利通过。看别人的可能还会出现别的问题,可参考如下网址:
https://blog.csdn.net/smilestone_322/article/details/17611519。
解决办法:在darknet_io.cpp 中 #include
参考网站:https://blog.csdn.net/a1252221365/article/details/79446295
解决办法:修改工程属性可以解决这个问题。打开工程属性页-》配置属性-》链接项目-》优化,有个“引用”项,选择否(/OPT:NOREF)即可,截图如下:
在MSDN上查找/OPT(优化)相关信息
REF | NOREF
/OPT:REF 清除从未引用的函数和数据;
/OPT:NOREF 保留从未引用的函数和数据。
如果想要进一步了解,可参考网站:https://blog.csdn.net/Solomon1558/article/details/45582249
解决办法:出现上述问题主要是文件编码的问题。查看项目的编码格式为“UTF-8 无签名”(如图)
将其修改为“UTF-8 带签名”(如图)即可解决上述问题。
参考网址:https://blog.csdn.net/caroline_wendy/article/details/13169837
一,问题描述
MSVCRTD.lib(exe_winmain.obj) : error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用
CamShift.exe : fatal error LNK1120: 1 个无法解析的外部命令
error LNK2001: unresolved external symbol _WinMain
debug/main.exe:fatal error LNK 1120:1 unresolved externals
error executing link.exe;
二,原因及解决办法
产生这个问题的真正原因是c语言运行时找不到适当的程序入口函数,
一般情况下,如果是windows程序,那么WinMain是入口函数,在VS2017中新建项目为“win32项目”
如果是dos控制台程序,那么main是入口函数,在VS2017中新建项目为“win32控制台应用程序”
而如果入口函数指定不当,很显然c语言运行时找不到配合函数,它就会报告错误。
修改设置适应你的需求
如果是windows程序:
1.菜单中选择 Project->Properties, 弹出Property Pages窗口
2.在左边栏中依次选择:Configuration Properties->C/C++->Preprocessor,然后在右边栏的Preprocessor Definitions对应的项中删除_CONSOLE, 添加_WINDOWS.
3.在左边栏中依次选择:Configuration Properties->Linker->System,然后在右边栏的SubSystem对应的项改为Windows(/SUBSYSTEM:WINDOWS)
如果是控制台程序:
1.菜单中选择 Project->Properties, 弹出Property Pages窗口
2.在左边栏中依次选择:Configuration Properties->C/C++->Preprocessor,然后在右边栏的Preprocessor Definitions对应的项中删除_WINDOWS, 添加_CONSOLE.
3.在左边栏中依次选择:Configuration Properties->Linker->System,然后在右边栏的SubSystem对应的项改为CONSOLE(/SUBSYSTEM:CONSOLE)
参考网址:https://www.cnblogs.com/leijiangtao/p/4496355.html
建项目是用的是VS2015下的Win 32项目,编译时出现上述错误。
拟采用的解决办法:项目->属性->配置属性->连接器->系统中的【子系统】设置为 控制台 (/SUBSYSTEM:CONSOLE)。
不同的项目或软件需要修改的配置也不尽相同,可以参照进行尝试。