Macos 包含libgpgme时无法生成Firebreath

Macos 包含libgpgme时无法生成Firebreath,macos,firebreath,gpgme,Macos,Firebreath,Gpgme,如问题所述,当我尝试使用Xcode在MacOSX 10.6上构建需要libgpgme的firebreath项目时,我得到了上面的错误。我的include/search路径是有效的,因为我可以从控制台运行以下命令,并且运行良好 Undefined symbols for architecture x86_64: "_libintl_dgettext", referenced from: _gpg_strerror in libgpg-error.a(libgpg_error_la-

如问题所述,当我尝试使用Xcode在MacOSX 10.6上构建需要libgpgme的firebreath项目时,我得到了上面的错误。我的include/search路径是有效的,因为我可以从控制台运行以下命令,并且运行良好

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

gpgme配置的输出形式是-L/opt/local/lib-lgpgme-lassuan-lgpgerror。不确定还需要什么其他信息,请发表评论,我将根据需要进行更新。

您的问题是,您正在为32位和64位构建通用二进制文件,而您包含的库不是为64位构建的。只有将-D CMAKE_OSX_architecture=“i386”添加到prepmac.sh命令行中,才能构建i386

在使用新参数运行prepmac.sh之前,请确保删除生成目录,否则可能不需要


有关更多信息,请参见firebreath.org上的页面

您的问题是,您正在为32位和64位构建通用二进制文件,而您包含的库不是为64位构建的。只有将-D CMAKE_OSX_architecture=“i386”添加到prepmac.sh命令行中,才能构建i386

在使用新参数运行prepmac.sh之前,请确保删除生成目录,否则可能不需要


有关更多信息,请参见firebreath.org上的页面

感谢指针,我需要得到i386 libs,我目前只安装了x64 libs,所以构建对于x64是可以的,但是对于i386是失败的;这个错误是说您的x86_64库不在那里;看看它说找不到的符号和64位上缺少的符号是的,它似乎是gettext库,试图解决如何为i386编译它感谢指针,我需要得到i386库,我目前只安装了x64库,所以构建对于x64是可以的,但是对于i386是失败的;这个错误是说您的x86_64库不在那里;看看它说找不到的符号和64位上缺少的符号是的,它似乎是gettext库,试图找出如何为i386 arch编译它
 g++ -o test test.cpp `gpgme-config --libs`