4

--as-neededAutomakeを使用して共有ライブラリをリンクするにはどうすればよいですか?にフラグを追加しようとするとLDFLAGS、次のようにlibtool呼び出されます。

/bin/bash ../../libtool --mode=link ... -Wl,--as-needed ... dependencies

その結果、次のようにGCCが呼び出されます。

gcc -shared ... dependencies ... -Wl,--as-needed ...

しかし、それは間違った順序です。

  • Libtoolでこれを行う方法はありますか?

  • または、Automakeを使用してLibtoolを使用せずに共有ライブラリを構築するための優れた方法はありますか?(私は過去に他のさまざまな理由でLibtoolに不満を感じていました...)

Debianの人々もこの問題に遭遇したようです(バグレポート)が、システムを台無しにするのではなく、プロジェクトのためにこれを修正できるようにしたいと思います(修正を誤解しない限り)。

4

3 に答える 3

5

プロジェクトソースのltmain.shスクリプトを変更することで、プロジェクトだけでこれを修正できます。https://meego.gitorious.org/tracker/tracker/commit/cf2ca3414aeba146dceacc5ecd84765f4c08a06fのように、autotoolsブートストラップの一部として追加することもでき ます。

于 2011-07-29T10:19:01.183 に答える
2

あなたはそれを修正することができますMakefile.am; 基本的には、の代わりに使用する必要があることを除いて、ここでの私の質問に対する答えと同じです。-(no-)as-needed-(no-)whole-archive

于 2011-07-31T19:27:37.353 に答える
0

特にパッケージのメンテナンスに関しては、本当に苛立たしい問題です。

Debianには、libtoolにパッチを適用し、debianパッケージでこの問題を修正するためのサポートが組み込まれています。

dh_autoreconf --as-needed

または、CDBSを使用している場合:

include /usr/share/cdbs/1/rules/autoreconf.mk

DEB_DH_AUTORECONF_ARGS += --as-needed
于 2014-10-03T21:21:37.373 に答える