解决多项目上报错LNK2019 无法解析的外部符号 “public: __thiscall ..“,函数 _main 中引用了该符号 vs2022 C++

报错演示:

严重性    代码    说明    项目    文件    行    禁止显示状态
错误    LNK2019    无法解析的外部符号 "public: __thiscall ……" ,函数 _main 中引用了该符号    DataProcess 

  
报错说明与解决:

按照网上说法,这种报错可能是因为C/C++下的预处理器定义以及链接器下的子系统的选择是控制器还是windows窗口。但我这里不是这个原因。

我这里是多个项目,如下展示其中一块:

我有个项目专门处理glog,处理完后在启动项DataProcess中定义的入口函数,如下:

#include"GlogHelp/GlogHelp.h"

int main()
{
	GLogHelper Glog;
	LOG(WARNING) << "warning" << endl;
	LOG(INFO) << "info" << endl;
	LOG(ERROR) << "error" << endl;
	return 0;
}

 但是如此操作就会报错。glog项目已经单独测试过,是不会有问题的。将main函数中内容注释掉,运行正常,说明不是找不到入口函数。那么只能是连接出了问题。可是我这里已经include了呀。百思不得其解。尝试将glog项目生成的.lib文件输出到我固定的Lib文件夹。同时添加链接库代码,将glog库文件与代码进行链接。同时将glog的.dll文件放到工程所在文件夹下,问题解决了。

#include"GlogHelp/GlogHelp.h"
#pragma comment(lib, "GlogHelp.lib")
int main()
{
	GLogHelper Glog;
	LOG(WARNING) << "warning" << endl;
	LOG(INFO) << "info" << endl;
	LOG(ERROR) << "error" << endl;
	return 0;
}

因为是初学,此处忽略了这个细节。很多项目都是在属性-链接器-附加依赖项里添加了,而我照葫芦画瓢难以注意到这点。引以为戒,与诸位共勉。

猜你喜欢

转载自blog.csdn.net/weixin_55696427/article/details/134822950
今日推荐