2009-09-04 7 views
0

HPUXでは、ブースト1.39.0共有ライブラリに正しいパスを含めるには、+ hリンクオプションを使用する必要があります。 「HPUXのビルドを強化するリンカオプションを追加

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) 

しかし、今、私は永久的な解決をしたい、と私は次のことができます(http://www.nabble.com/HPUX-aCC:-Howto-avoid-building-boost-libraries-containing-absolute-library-path-references-when-calling-bjam-install-td17619511.htmlから)

-Wl,+h$(SPACE)-Wl,$(<[-1]:D=) 

私は、これはgcc.jamツールセットファイルをハッキングすることで動作することをテストしてみましたどのように働くか。

まず、actions link.dllセクションにbjam条件を入れてみましたが、そのセクションにはシェルコマンドが含まれています。

次に、これらのターゲットのOPTIONS変数に余分なセクションを追加しようとしました。しかし、それはリンクに何の影響も与えていないようです。

最後に、gcc.jamhpuxgcc.jam)のコピーとして別のツールセットを作成しようとしましたが、それは全く機能しませんでした。私は変数名を変更する必要がある場所がたくさんあると思いますが、Jamの構文はわかりません。

誰かがこれをうまく利用する方法を知っていますか?または、私はちょうど私がブーストを構築する前に実行するパッチにハッキーバージョンを変換する必要がありますか?確かに良い方法がありますか?

は質問がどちらかです推測です:

a)のI(プラットフォーム上の条件が)gcc.jamにリンカのコマンドにテキストを追加するにはどうすればよい

または:

B) gcc.jamに基づいて新しいツールセットを作成するにはどうすればよいですか?

これは簡単です...

答えて

1

-hオプションとは何ですか?それは "soname"を設定していますか?その場合は、同じアクションでHAVE_SONAMEとSONAME_OPTIONを使用することに注意してください。次に、設定されているgcc.jamのコードブロックをメモします。

if [ os.name ] != NT && [ os.name ] != OSF && [ os.name ] != HPUX && [ os.name ] != AIX 
{ 
    # OSF does have an option called -soname but it does not seem to work as 
    # expected, therefore it has been disabled. 
    HAVE_SONAME = "" ; 
    SONAME_OPTION = -h ; 
} 

これはお使いのプラットフォームに合わせて調整できます。

[email protected]でこれをフォローすることをお勧めします。これはBoost.Buildの質問がスタックオーバーフローよりはるかに良い場所です。

+0

Aは、HP-UXでHAVE_SONAMEとSONAME_OPTIONを設定し、問題を解決したブロックを追加しました。ありがとう。 –

+0

パッチ(svn diff出力)を[email protected]にドロップして公式バージョンに含めることができます。ありがとう。 –

関連する問題