2012-05-02 59 views
1
Undefined symbols for architecture x86_64: "_libintl_dgettext", referenced from: 
     _gpg_strerror in libgpg-error.a(libgpg_error_la-strerror.o) 
     _gpg_strerror_r in libgpg-error.a(libgpg_error_la-strerror.o) 
     _gpg_strsource in libgpg-error.a(libgpg_error_la-strsource.o) ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status 

如前所述對這個問題的時候,當試圖建立使用Xcode中,我得到上述錯誤需要MacOSX上10.6 libgpgme我firebreath項目建設Firebreath。我的包含/搜索路徑是有效的,因爲我可以從控制檯運行以下命令,它工作正常。廣東話包括libgpgme

g++ -o test test.cpp `gpgme-config --libs` 

輸出形成GPGME-配置是-L /選擇/本地/ lib中-lgpgme -lassuan -lgpg誤差。不確定需要哪些其他信息,評論和我會根據需要進行更新。

回答

1

你的問題是你正在爲32位和64位構建一個通用二進制文件,你所包含的庫不是爲64位構建的。您只能通過將-D CMAKE_OSX_ARCHITECTURES =「i386」添加到prepmac.sh命令行來構建i386。

確保在使用新參數運行prepmac.sh之前刪除構建目錄,否則可能無法使用。

請參閱firebreath.org上的Prep Scripts頁面以獲取更多信息。

+0

感謝指針,我需要得到i386庫,我目前只安裝了x64庫,所以構建可以用於x64,但不適用於i386。 – RC1140

+0

根據你的消息,這是相反的;該錯誤是說你的x86_64庫不在那裏。 – taxilian

+0

它甚至可能不是特定的gpgme,它缺少它;看看它說它無法找到的符號,這些在64位 – taxilian