2011-11-25 12 views
1

多くのファイルを一度にコンパイルするには、GNUビルドシステムを使用する必要があります。これまでは、一度に1つのファイルをコンパイルする方法の例しか見ていませんでした。これは私の好きなリファレンスです:GNU一度に複数のファイルを作成する

http://www.scs.stanford.edu/~reddy/links/gnu/tutorial.pdf

それは言う:

「をMakefile.am」

bin_PROGRAMS = hello 

hello_SOURCES = hello.c 

「configure.ac」

AC_INIT([Hello Program],[1.0], 

[Author Of The Program <[email protected]>], 

[hello]) 

AC_CONFIG_AUX_DIR(config) 

AM_INIT_AUTOMAKE([dist-bzip2]) 

AC_PROG_CC 

AC_PROG_INSTALL 

AC_CONFIG_FILES([Makefile]) 

AC_OUTPUT 

しかし、hello.chello2.cを同時に作成したいのですが?

+1

これは正確にメイクの質問はありませんが、GNUのツールの質問を構築:

Reference

automakeのために、あなただけの両方のプログラムを定義する必要があります。 – dmckee

答えて

0

numファイルを同時にコンパイルするには、make -j numを使用します。 numを省略し、できるだけ多くのファイルをコンパイルできるようにします。通常は、システムにCPU /コアがあるよりも多くのファイルを同時にコンパイルすると、それ以上の処理速度が向上しません。これを使用する前に、すべての依存関係がリストされていることを確認してください。

0

automakeを使用しても、Makefileのみが生成されます。あなたは普通のmakeコマンドを使用してしまいます。

makeを実行すると、コマンドラインオプションを追加します。並行してできるだけ多くのビルドコマンドを実行するよう指示します。 -j 4を使用して、同時ビルドの最大数を指定することもできます。 (通常は良い値はありnbrProcessors + 1)

0

あなたは、あなたが「偽」の目標、あなたの結果の両方に依存する仮想ターゲット、例えば生成作るGNUにデフォルトで複数のターゲットを構築したい場合:

.PHONY: both 
both: hello hello2 
hello: hello.o 
hello2: hello2.o 
hello2.o: hello2.c 

makeまたはmake bothを実行すると、hellohello2の両方が作成されます。

bin_PROGRAMS = hello hello2 

hello_SOURCES = hello.c 
hello2_SOURCES = hello2.c 
関連する問題