最新の GnuPG (2.1.1 modern ) をビルドしようとしているときに、リンクしようとするとビルドが失敗しますt-stringhelp
。make
出力:
ld: warning: ignoring file libcommon.a, file was built for archive which is not the architecture being linked (x86_64): libcommon.a
Undefined symbols for architecture x86_64:
"_compare_filenames", referenced from:
_main in t-stringhelp.o
"_make_absfilename_try", referenced from:
_main in t-stringhelp.o
"_make_filename_try", referenced from:
_main in t-stringhelp.o
"_percent_escape", referenced from:
_main in t-stringhelp.o
"_strconcat", referenced from:
_main in t-stringhelp.o
"_xstrconcat", referenced from:
_main in t-stringhelp.o
ソースの一部であるため、これを修正する方法がわからないlibcommon
ため、正常にビルドされるはずです。CFLAGS="-m64"
(-arch x86_64
何もしない) でビルドすると、次のようになります。
ld: warning: ignoring file ../common/libgpgrl.a, file was built for archive which is not the architecture being linked (x86_64): ../common/libgpgrl.a
Undefined symbols for architecture x86_64:
"_gnupg_rl_initialize", referenced from:
_main in gpg.o
pinentry
また、インストールされているものが見つからないため、を除いて、すべての依存関係を再構築しました(Mavericksで構築したため)libiconv
。私のconfigure
出力はそのターゲットがDarwin (x86_64-apple-darwin14.0.0)
であるため、これは機能するはずです。また、すべての最新の前提条件を取得し、すべてを独自のディレクトリ (--prefix=/usr/local/gnupg-2.1.1) にインストールしようとし、すべての依存関係と GnuPG を 32 ビットとしてビルドします (再び、同じエラーで失敗します)。 )、別のビルドフォルダーを作成してそこにビルドしようとしましたが、これまでのところエラーを解決できたのは1つだけです.ビルド方法を見てくださいlibgpgrl.a
-それは唯一のコンポーネントですcommon/gpgrlhelp.c
-だから私はcd
'edg10
でビルドしようとしましたgpg2
、 に置き換え../common/libgpgrl.a
て../common/gpgrlhelp.o
、のlib common.a
機能しなかったすべてのライブラリのすべてのオブジェクト ファイルを含む。次に、いくつかのプログラムがlibksba
libgcrypt
とlibassuan
にリンクしていなかったので、リンクできるように Makefile を変更しました。すべてのコードを適切にコンパイルできるようになりました。すべてをインストールしましたが、実行しようとすると新しいエラーが発生しますgpg2
。
dyld: lazy symbol binding failed: Symbol not found: __gcry_mpi_init
Referenced from: /usr/local/gnupg-2.1.1/lib/libgcrypt.20.dylib
Expected in: flat namespace
dyld: Symbol not found: __gcry_mpi_init
Referenced from: /usr/local/gnupg-2.1.1/lib/libgcrypt.20.dylib
Expected in: flat namespace
私は自分のパスにすべてを持っています。
/usr/local/gnupg-2.1.1/bin:/usr/local/gnupg-2.1.1/lib:/Library/Frameworks/Python.framework/Versions/3.4/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/local/mysql/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
Mavericks で GnuPG-2.0.22 をコンパイルできましたが、Yosemite でビルドされる GnuPG のバージョンはありません。
助けてください、私は本当に混乱しています。