1、VS2015-错误 LNK2001 无法解析的外部符号 _WinMain@16,该符号在函数 “int __cdecl invoke_main
背景:使用opencv库的时候编译了x64的,因为现在需求变化需使用win32的,编译出库之后进行使用,发现工程配置好win32的相关路径之后提示链接出错error LNK2019 无法解析的外部符号 _WinMain@16,该符号在函数 “int __cdecl invoke_main(void)”。
解决方法;
在左边栏中依次选择:Configuration Properties->C/C+±>Preprocessor,然后在右边栏的Preprocessor Definitions对应的项中删除_WINDOWS, 添加_CONSOLE.
在左边栏中依次选择:Configuration Properties->Linker->System,然后在右边栏的SubSystem对应的项改为CONSOLE(/SUBSYSTEM:CONSOLE)
测试结果可以正常编译通过
参考链接:
https://blog.csdn.net/luoyayun361/article/details/84403579
https://blog.csdn.net/playstudy/article/details/6661868
2、 winsok2.h等报一系列网络相关的重定义错误
原因:使用了第三方库并且自己还引入了windows.h文件
解决方法:首先保证一些第三方库的头文件最好只在.cpp文件中引入,再查找有头文件嵌套引入包含了include<windows.h>要把这个引入放到后面,
#include “NewManager.h”(这里面的有一个头文件中引入了#include <windows.h>)
#include “pcquicklib.h”
因此要换个顺序将
#include “pcquicklib.h”
#include “NewManager.h”
就可以解决这类重复定义问题,这是常见的错误。
3、 引入第三方库的时候使用相对路径有时候会存在问题,最好将头文件目录配置到属性当中
报编译错误,找不到定义,但是自己点击跳转又能跳转过去。
解决方法:将头文件目录配置到属性当中,不使用相对目录那种方法去引入