Mac OS X (10.7.1) で C++ 用のgoogle-gflagsコマンドライン フラグ ライブラリを構築しています。ビルドプロセスは次のとおりです。
$ ./configure --prefix=output
$ make
$ make install
ビルド時に生成された共有ライブラリのインストール名を変更し、install_name_tool
その後は使用しないようにしたいと考えています。
デフォルトでは、生成された共有ライブラリのインストール名libgflags.dylib
は出力パスです。
$ otool -L ./output/libgflags.dylib
$ ./output/libgflags.dylib:
/tmp/gflags-1.5/output/lib/libgflags.0.dylib (compatibility version 2.0.0, current version 2.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.0.0)
のマニュアル ページにld(1)
は、-install_name
リンク時に動的ライブラリのインストール名を変更するために使用できるオプションがあります。
たとえば、ダミー プログラムを使用すると、次のようになります。
$ g++ -dynamiclib temp.cc -install_name /tmp/temp.dylib -o temp.dylib
$ otool -L temp.dylib
temp.dylib:
/tmp/temp.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.0.0)
しかし、./configure
スクリプトでこのコマンド ライン オプションを使用できません。変数を手動で設定しようとしましCFLAGS
たが、エラーが発生します。
$ CFLAGS="-install_name /tmp/desired/location/libgflags.dylib" ./configure
checking for a BSD-compatible install... /opt/local/bin/ginstall -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/Users/vibhav/Code/install_name_test/gflags-1.5':
configure: error: C compiler cannot create executables
configure
では、.dylib を使用して、またはmake
使用せずに生成された .dylib のインストール名を変更することは可能install_name_tool
ですか?