VS报错LNK1104原因之一:隐式引用外部库文件(无论静态库还是动态库),却没有将其路径添加至main所在项目的链接器。

场景:需要用到外部提供的API,此处用静态库示范,调用方法为隐式调用,即使用#pragma comment(lib,“test.lib”)语法导入静态库,文件结构包括头文件和打包成lib的源文件,这里的API接口函数只有一个test()函数。
在这里插入图片描述
代码

#include <iostream>
#include "../test/include/test.h"
#pragma comment(lib,"StaticLibOfTest.lib")
using namespace std;
int main()
{
	test();
	return 0;
}

报错
在这里插入图片描述

原因:没有将被隐式调用的库的路径增加到该项目的链接器的附加库目录中。
在这里插入图片描述
解决方法:将被隐式调用的库的路径增加到该项目的链接器的附加库目录中。
注意:如果这里是动态库,就要把相应的.dll文件和.lib文件全部放到附加库目录中。
在这里插入图片描述
结果成功:test()的作用是打印OK。
在这里插入图片描述
隐式调用动态库时也要记得将链接器的附加库目录中加入被引用的动态库所在目录。

Logo

一站式 AI 云服务平台

更多推荐