2012-05-02 44 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