2012-07-27 77 views
0

我想用C++這是建立在Eclipse在Xcode 4靜態庫:的Xcode:使用C++靜態庫

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

hello.h

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

HELLO.CPP

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

所以建立在Eclipse之後,我有一個圖書館.A。現在,我將.a文件和標題導入Xcode應用程序。問題是在.mm文件(我創建)中,我不能調用「int x = Test :: getX();」,它顯示2個錯誤:

架構i386的未定義符號: 「Test ::的getX()」,從引用: - [LibFetching onlyfortest]在LibFetching.o

LD:符號(多個)未找到i386硬件架構 鐺:錯誤:連接器命令,退出代碼1(使用-v失敗請參閱調用)

你知道我該如何解決它?非常感謝你。

回答

0

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

然後點擊構建階段,然後在Link Binary with Libraries部分(創建一個,如果它尚不存在),添加您的庫,也將它添加到您的目標依賴項部分。

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

3

從問題似乎您試圖C++靜態庫鏈接到一個Objective C++項目

轉到項目 - >構建設置,搜索C++語言方言和C++標準庫。選擇選項「編譯器默認」爲他們兩個,它應該工作

還檢查是否必須將另一個鏈接器標誌設置爲-lstdC++