创建引用第三方库的C ++库

时间:2018-11-18 00:51:30

标签: c++ visual-studio-2017

我正在尝试创建一个利用第三方库的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)'

我已为控制台应用程序提供了可以找到第三方库的位置。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您没有在程序中包含ThirdParyLib.lib,对吗?您得到的是链接器错误,抱怨它在ThirdPartyLib.h头文件中找不到函数的函数定义。

尝试一下:

#pragma comment(lib,"..\\Debug\\ThirdPartyLib.lib")

请注意,按照上面的示例,将ThirdPartyLib.lib放置在调试目录中。