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项目时,我得到上面的错误。我的包含/搜索路径是有效的,因为我可以从控制台运行以下命令,它可以正常工作。
g++ -o test test.cpp `gpgme-config --libs`
gpgme-config的输出是-L / opt / local / lib -lgpgme -lassuan -lgpg-error。不确定需要什么其他信息,评论,我会根据需要更新。
答案 0 :(得分:1)
您的问题是您正在为32位和64位构建通用二进制文件,并且您所包含的库不是为64位构建的。您只能通过在prepmac.sh命令行中添加-D CMAKE_OSX_ARCHITECTURES =“i386”来构建i386。
确保在使用新参数运行prepmac.sh之前删除您的构建目录,否则可能不会。
有关详细信息,请参阅firebreath.org上的Prep Scripts页面。