我正在尝试创建一个利用第三方库的C ++库。我的自定义库编译良好。但是,当我尝试使用控制台应用程序对其进行测试时,控制台应用程序使我产生了构建错误。我的设置如下:
平台-Visual Studio Community 2017
//MyLib.h
#include <ThirdPartyLib.h>
namespace MyLib
{
class MyLibClass
{
public:
static void SomeFunction();
};
}
//MyLib.cpp
#include MyLib.h
void MyLib::MyLibClass::SomeFunction()
{
ThirdPartyLib::ThirdPartyFunction();
}
//MyConsoleApplication.cpp
#include "..\MyLib\MyLib.h"
#pragma comment(lib,"..\\Debug\\Mylib.lib")
int main()
{
MyLib::SomeFunction();
return 0;
}
我的自定义库能够正常编译。当我尝试编译控制台应用程序时,我遇到了很多有关第三方库的错误,如下所示。
LNK2019:函数'private void _thiscall MyLib :: MyLibClass :: SomeFunction(void)'中引用的未解决的外部符号'公共虚拟_thiscall ThirdPartyLib :: Foo ::〜Foo(void)'
我已为控制台应用程序提供了可以找到第三方库的位置。有人可以帮忙吗?
答案 0 :(得分:0)
您没有在程序中包含ThirdParyLib.lib,对吗?您得到的是链接器错误,抱怨它在ThirdPartyLib.h头文件中找不到函数的函数定义。
尝试一下:
#pragma comment(lib,"..\\Debug\\ThirdPartyLib.lib")
请注意,按照上面的示例,将ThirdPartyLib.lib放置在调试目录中。