4

プロジェクトをビルドするために、autoconfを使用してconfigureスクリプトを生成しました。

必要なライブラリがインストールされていない限り、正常に動作します。一部のファイルが不足している場合はエラーが返されますが、実際にはconfigureスクリプトで確認する必要がありますか?

だから私の質問は:依存関係を探してユーザーにそれが欠けているライブラリを伝えるためにautoconfで生成されたスクリプトを変更する方法は?

4

3 に答える 3

5

依存関係に応じて、一般的な解決策はありません。

ライブラリとヘッダーが標準の場所にインストールされている場合に機能する可能性のあるマクロAC_CHECK_LIBあります。AC_SEARCH_LIBS

最近の多くのパッケージはpkg-config、ライブラリの存在を確認できるようにするものなどをサポートしており、必要なコンパイラとリンカのフラグを提供することもできます。

ACマクロで動作せず、サポートなどを行わないパッケージではpkg-config、依存関係が利用可能かどうか、および必要なコンパイラとリンカのオプションを確認するために、おそらく自分で大量のスクリプトを作成する必要があります。それでも、ポータブルにするのは難しいです。

于 2009-06-15T17:11:38.447 に答える
2

はい、構成時にチェックを実行します。次のようなコードを(Shlomi Fishのおかげで)あなたのconfigure.ac:に貼り付けてください

if test "x$requires_libavl" = "xyes" ; then
    AC_CHECK_LIB(avl, avl_create, [], [
        echo "Error! You need to have libavl around."
        exit -1
        ])
fi

2.5より前のautoconfがある場合は、configure.in代わりに使用することに注意してください。

于 2009-06-15T17:04:08.710 に答える
1

私が過去にこれを行った方法は、必要なヘッダーファイルをプルするか、必要なライブラリにリンクする簡単なプログラムを作成し、それをconfigureスクリプトでコンパイル/リンクすることです。それが失敗した場合は、要件が満たされていないことを示すメッセージを送信します。詳細をお伝えしたいと思いますが、コードはもう使用されていないドライブにあります。

于 2009-06-15T16:49:56.293 に答える