解决多项目上报错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;
}

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

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
error lnk2019: 无法解析外部符号 __imp___gmp_printf,函数 main 引用了该符号。 这个错误通常是由于在链接过程找不到所需的库文件而导致的。 一种可能的原因是在代码使用了 GMP (GNU Multiple Precision Arithmetic Library) 库的 __gmp_printf 函数,但在链接阶段未正确地指定相关的库文件。 为了解决这个错误,我们需要做以下几个步骤: 1. 确保已正确安装 GMP 库:在编译代码之前,我们需要先将 GMP 库安装到系统。这可以通过下载 GMP 库的源代码并按照其提供的安装说明操作来完成。 2. 在编译命令添加正确的链接选项:在编译代码时,我们需要在编译命令添加正确的链接选项,以告诉编译器需要链接 GMP 库。具体来说,我们需要在编译命令添加 -lgmp 选项,以指定要链接的 GMP 库。 例如,在使用 gcc 编译器进编译时,我们可以将以下选项添加到编译命令: gcc filename.c -lgmp 3. 确保库文件的路径正确:如果你已经正确地安装了 GMP 库,但仍然遇到这个错误,可能是因为编译器无法正确找到 GMP 库的安装路径。在这种情况下,我们需要通过在编译命令添加 -L 选项来指定库文件的路径。 例如,在使用 gcc 编译器进编译时,我们可以使用以下命令指定库文件的路径: gcc filename.c -L /path/to/gmp/lib -lgmp 通过执以上步骤,我们应该能够解决 error lnk2019: 无法解析外部符号 __imp___gmp_printf 这个错误,并且成功编译并链接包含 GMP 库函数调用的代码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuxuxucq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值