2016-05-03 5 views
0

私は別々にコンパイルし、batファイルを使ってそれらをリンクさせたいいくつかのcファイルを持っています。 gccを使ってコンパイル/リンクします。未知数のCファイルをコンパイルするためのバットファイル

問題は、新しいcファイルが追加される可能性があり、ファイルの正確な数を知らずに(batファイルを変更せずに)すべてのファイルをコンパイル/リンクすることです。その後、

for X=1:number_of_c_files 
    gcc -c sourceX.c 

と一緒にそれらをリンク:

ような何か。

すべてのファイル は、compile_to_cX.cという名前で、Xは1からディレクトリのcファイル数までの値です。

ありがとうございます!

答えて

2

非常に簡単です。

for %%i in (*.c) do (
    gcc -c "%%i" 
) 

それはようなものになるだろう、その場合には、あなたがGCCに* .oのを指定することができる場合、私は覚えていないが、私はあなたができると思うETA

gcc *.o [options] 

別のオプションは、.oファイル名を環境変数に累積することです。

setlocal ENABLEDELAYEDEXPANSION 
set O_FILES= 
for %%i in (*.o) do (
    set O_FILES=!O_FILES! %%i 
) 

gcc %O_FILES% [other options] 

実際には、おそらくメイクファイルを使用するべきです。

+0

リンクについてはどうですか?私はgcc -Xlinker -no-as-neededのようなものと同時にこれを行う必要がありますcompile_to_c1.o ... compile_to_c100.o -x none – user3629077

+0

コンパイルしたのと同じように動作しません – user3629077

+0

あなたの助けに感謝しますが、 。私はこの質問のために新しい話題を作ろうとします。 – user3629077

関連する問題