HPUX では、+h リンク オプションを使用して、boost 1.39.0 共有ライブラリに正しいパスが含まれるようにする必要があります。
-Wl,+h$(SPACE)-Wl,$(<[-1]:D=)
gcc.jam ツールセット ファイルをハッキングして、これが機能することをテストしました。
796c796
< "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
---
> "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,+h$(SPACE)-Wl,$(<[-1]:D=) -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
しかし、今は恒久的な解決策が欲しいのですが、どうすればよいかわかりません。
まず bjam 条件文をactions link.dll
セクションに入れてみましたが、そのセクションにはシェルコマンドが含まれています。
次に、これらのターゲットの OPTIONS 変数に余分なセクションを追加してみました。しかし、それはリンクに何の影響も与えていないようでした。
gcc.jam
最後に( )のコピーとして別のツールセットを作成しようとしましたhpuxgcc.jam
が、まったく機能しませんでした。変数名を変更する必要がある場所は他にもあると思いますが、Jam の構文は私の理解を超えています。
これを機能させる方法について、誰かがより良いアイデアを持っていますか? それとも、Boost をビルドする前に、ハック バージョンを実行するパッチに変換するだけでよいのでしょうか? 確かにもっと良い方法がありますか?
質問は次のいずれかだと思います:
a) gcc.jam のリンカー コマンドにテキストを追加するにはどうすればよいですか (プラットフォームによって異なります)。
または:
b) に基づいて新しいツールセットを作成するにはどうすればよいgcc.jam
ですか?
どちらが簡単ですか...