vs工程cpp从0搭建踩坑 minwinbase.h重复定义 已经在 xxx.obj 中定义 __imp_bind
1 minwinbase.h重复定义问题
将minwinbase.h修改为Windows.h
2 错误 LNK2001 无法解析的外部符号 __imp_bind WebRTCiocp F:\gitea\custom\project\02-webRTC\WEBRTCIOCP\WebRTCiocp\baseiocprtc.obj 1
却少库调用 可以在配置文件中搞,不过我喜欢一行代码搞定
#pragma comment(lib,"ws2_32.lib")//包含附加依赖项,也可以在工程--属性里面设置
3 win常用宏定义,用于压制各种报错
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
4 如果不定义类的格式,请注意 *.h 中尽量不要写函数实现,只写函数声明,函数实现,尽可能写在*.cpp中,具体自己尝试,我尝试了,会出错
5 在纯*.h中全局变量不能定义在*.h中,必须在对应的*.cpp中定义,然后再在对应的*.h中加上extern 如下(相当于全局变量,class中的public)
如果在*.cpp中定义的变量,仅仅是在本地调用,则无此限制(相当于局部变量,class中的private,并且外部还看不见,不知道内部的原理)
6 LNK2005 "int LOG_LEVEL" (?LOG_LEVEL@@3HA) 已经在 baseiocprtc.obj 中定义 WebRTCiocp LNK2001 无法解析的外部符号 __imp_bind WebRTCiocp
这些都是全局变量未加extern的结果,见4和5
//