![](/img/trans.png)
[英]Can I compile my c++ class into static library (.a) in order to use in my iPhone project?
[英]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.