簡體   English   中英

我無法讓自己的靜態庫在我的項目中工作

[英]I can't get my own static library to work in my project

我已經創建了一個靜態庫項目,並將其添加到具有使用該庫的項目的解決方案中。

我在主項目中包含了我需要的類,就像我使用另一個靜態庫一樣,但它會拋出這些錯誤:

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 vs Release,x86 vs x64等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM