gpt4 book ai didi

c++ - 我无法让我自己的静态库在我的项目中工作

转载 作者:行者123 更新时间:2023-11-28 02:51:35 25 4
gpt4 key购买 nike

我创建了一个静态库项目,并将其添加到具有使用该库的项目的解决方案中。

我在主项目中包含了我需要的类,就像我在另一个静态库中一样,但它抛出了这些错误:

error LNK2019: unresolved external symbol "public: __thiscall NetworkingLib::Base::Base(void)" (??0Base@NetworkingLib@@QAE@XZ) referenced in function _SDL_main
error LNK2019: unresolved external symbol "public: void __thiscall NetworkingLib::Base::Connect(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?Connect@Base@NetworkingLib@@QAEXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z) referenced in function _SDL_main

我不知道出了什么问题。我检查了另一个以相同方式使用库的项目,但我找不到任何差异。对检测问题有帮助吗?

类 NetworkingLib::Base 有一个我想使用的方法。所以我在主项目中所做的是:

#include "../NetworkLibrary/Base.h"

NetworkingLib::Base *m_pNetworkObj;
m_pNetworkObj = new NetworkingLib::Base();
m_pNetworkObj->Connect("localhost", "80");

我不认为这有什么问题,所以问题一定出在其他地方。

最佳答案

在同一解决方案中拥有静态库是不够的。您必须将它传递给使用它的项目的链接器。

在 Visual Studio 中,最好的方法是添加“项目引用”。这会设置依赖关系,以便项目以正确的顺序构建,并选择与使用项目匹配的静态库版本,即 Debug 与 Release、x86 与 x64 等。

关于c++ - 我无法让我自己的静态库在我的项目中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22917766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com