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

 

 

//

 

posted @ 2022-03-28 18:38  小城熊儿  阅读(209)  评论(0编辑  收藏  举报