1

私は過去数日間 autotools を使ってツールを使ってきましたが、最終的に大きな進歩を遂げました. 私が抱えている問題の 1 つは、メインのアプリケーション コードの前にコンパイルする必要がある 2 つのライブラリがあることです。これを行う方法がよくわかりません。私のディレクトリ構造は以下にあり、私のconfigure.acからのスニペットも同様です。

AC_CONFIG_FILES([Makefile
         src/Makefile
         gtkworkbook/Makefile
         csv/Makefile])
AC_OUTPUT

src/Makefileの前にcsv/Makefilegtkworkbook/Makefileの両方をコンパイルする必要があります。これを指定する方法はありますか?現在、アプリケーションのコンパイル プロセス中に存在しないライブラリ (csv) に関するエラーが発生しています。

4

1 に答える 1

4

AC_CONFIG_FILES() 内のアイテムの順序は、ビルド順序には影響しません。automake を使用している場合は (そうであると思います)、各 Makefile.am の SUBDIRS リストにディレクトリをリストした順序でディレクトリ ツリーをトラバースします。

そうは言っても、一貫性/保守性のために、 AC_CONFIG_FILES() のアイテムの順序はビルド順序を反映する必要があります。

トップレベルの Makefile.am の SUBDIRS を目的の順序で構築する方法の例:

SUBDIRS = csv gtkworkbook src

また、この単純なケースでは、AC_CONFIG_FILES() と AC_OUTPUT() の両方は必要ありません。リスト ディレクトリを AC_OUTPUT() に渡すことができます。

AC_OUTPUT([
    Makefile
    src/Makefile
    gtkworkbook/Makefile
    csv/Makefile
])
于 2009-06-11T22:10:28.733 に答える