0

mingw32 gcc を使用してコマンドライン経由でプログラムをコンパイルしています。ソース ファイルが増えるにつれて、いくつかの問題が発生します。まず、次のスクリプトを検討してください。

gcc -Wall -I"MyDir" -I"MyDir2" -L"MyLibDir" -L"MyLibDir2" -l lib1 -l lib2 -l lib3 -c file.c
gcc -Wall -I"MyDir" -I"MyDir2" -L"MyLibDir" -L"MyLibDir2" -l lib1 -l lib2 -l lib3 -c file2.c
gcc -Wall -I"MyDir" -I"MyDir2" -L"MyLibDir" -L"MyLibDir2" -l lib1 -l lib2 -l lib3 -c file3.c
gcc -o myprog.exe file1.o file2.o file3.o

さて、gccコンパイラ ディレクトリ-I、リンカ ディレクトリ-L、およびリンク ライブラリを-l1 回だけ指定してから、同じオプションを使用して 2 番目と 3 番目のソース ファイルを再入力せずにコンパイルすることはできませんか? 何かのようなもの

gcc -define-options -Wall -I"MyDir" -I"MyDir2" -L"MyLibDir" -L"MyLibDir2" -l lib1 -l lib2 -l lib3 
gcc -Wall -c file1.c
gcc -Wall -c file2.c
gcc -Wall -c file3.c
gcc -o myprog.exe file1.o file2.o file3.o
4

1 に答える 1

2

私の知る限り、いいえ、できません。しかし、それが make と Makefiles が発明された理由です :)このチュートリアルは、小さなプロジェクト用のまともな Makefile を書き始めるには十分すぎると思います。

PS: 簡単で汚い方法は、インクルード ディレクトリを変数に保持する単純な bash スクリプトを記述することですが、車輪を再発明したくないので、私の意見では Makefile の方がはるかに優れたオプションです。

PS2: 好奇心から、確かにそれを行う方法があることがわかりました。いくつかの環境変数を定義するだけです。詳細については、こちらを参照してください: Linux で gcc のデフォルトのインクルード パスを追加するには?

于 2012-07-25T09:06:28.550 に答える