簡體   English   中英

Xcode:使用C ++靜態庫

[英]Xcode: Using C++ static library

我想使用在Xcode 4中的Eclipse中構建的C ++靜態庫:

例如,我有一個非常簡單的庫:

你好

class Test{ public: static int getX();};

你好

#include "hello.h"
int Test::getX(){return 10;}

因此,在Eclipse中構建之后,我有了一個庫.a。 現在,我將.a文件和標頭導入Xcode應用程序。 問題是,在.mm文件(我創建的)中,我無法調用“ int x = Test :: getX();”,它顯示2個錯誤:

體系結構i386的未定義符號:“ Test :: getX()”,引用自:LibFetching.o中的-[LibFetching onlyfortest]

ld:找不到體系結構i386鐺的符號:錯誤:鏈接器命令失敗,退出代碼為1(使用-v查看調用)

你知道我該怎么解決嗎? 非常感謝你。

從問題看來,您似乎正在嘗試將C ++靜態庫鏈接到Objective C ++項目

轉到項目->構建設置,搜索C ++語言方言和C ++標准庫。 為它們兩個都選擇選項“ Compiler Default”,它應該可以工作

還要檢查是否必須將另一個鏈接器標志設置為-lstdc ++

您將需要將靜態庫拖到Xcode項目中。 然后在左側導航器欄中選擇要添加庫的項目,選擇項目目標(如果有多個庫,則選擇需要庫的目標)。

然后單擊“構建階段”,然后在“使用庫鏈接二進制文件”部分(如果尚不存在,則創建一個庫)中,添加您的庫,並將其也添加到目標依賴項部分。

您可能需要在構建設置的“標題搜索路徑”中輸入庫標題的路徑。

暫無
暫無

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

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