autoconf でライブラリを解決しますか? 質問する

autoconf でライブラリを解決しますか? 質問する

初めての autoconf 管理パッケージを構築しています。

しかし、必要なライブラリを指定する方法や、さまざまな場所にある可能性のあるそのライブラリを見つける方法を示す簡単な例はどこにも見つかりません。

現在、以下のものを持っています:

AC_CHECK_LIB(['event'], ['event_init'])

しかし:

  1. インストールされているバージョンが見つかりません/opt/local/lib
  2. ライブラリが実際に見つからない場合はエラーは出ません
  3. インクルードパス/opt/local/includeも設定する必要があります

助けや適切なチュートリアルへのリンクがあれば、大歓迎です...

ベストアンサー1

autoconfスクリプトは、プラットフォームごとに異なる可能性のある「オプション」ライブラリの場所を推測できません。そのため、次のように記述できます。

CPPFLAGS="-I/opt/local/include" LDFLAGS="-L/opt/local/lib" ./configure

AC_CHECK_LIB()「action-if-false」引数で失敗条件を明示的に指定する必要があります。

dnl This is simply print "no" and continue:
AC_CHECK_LIB([m], [sqrt123])
dnl This will stop:
AC_CHECK_LIB([m], [sqrt123], [], [AC_MSG_ERROR([sqrt123 was not found in libm])])

出力:

checking for sqrt123 in -lm... no
checking for sqrt123 in -lm... no
configure: error: sqrt123 was not found in libm

AC_CHECK_LIB()明らかな理由でデフォルトで失敗することはありません。同様の機能を提供する複数の異なるライブラリをチェックして、そのうちの 1 つを選択できます :)

こちらもご覧くださいこの郵便受け同様のトピックについて。

おすすめ記事