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プロジェクトをビルドしようとすると、上記のエラーが発生します。コンソールから次のコマンドを実行でき、正常に機能するため、インクルード/検索パスは有効です。

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

gpgme-configからの出力は、-L / opt / local / lib -lgpgme-lassuan-lgpg-errorです。他にどのような情報が必要かわからない場合は、コメントしてください。必要に応じて更新します。

4

1 に答える 1

1

問題は、32ビットと64ビットの両方のユニバーサルバイナリを構築していて、含まれているライブラリが64ビット用に構築されていないことです。prepmac.shコマンドラインに-DCMAKE_OSX_ARCHITECTURES= "i386"を追加することによってのみ、i386をビルドできます。

新しい引数を指定してprepmac.shを実行する前に、必ずビルドディレクトリを削除してください。削除しないと、実行されない場合があります。

詳細については、firebreath.orgの準備スクリプトページを参照してください。

于 2012-05-02T16:12:30.223 に答える