使用MinGW32 GCC进行编译。只告诉链接库一次?

时间:2012-07-25 09:00:48

标签: c gcc command-line compilation mingw

我正在通过命令行使用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和链接库-l一次,然后编译第二个和第三个源文件具有相同的选项,而无需重新键入?像

这样的东西
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

1 个答案:

答案 0 :(得分:2)

据我所知,不,你不能。但这就是make和Makefiles被发明的原因:)我认为this tutorial足以让你开始为你的小项目编写一个像样的Makefile。

PS:快速&脏的方法就是编写一个简单的bash脚本来保存变量中的include目录,但是在我看来Makefiles是一个更好的选择,因为你不想重新发明轮子。

PS2:出于好奇,我发现确实有办法做到这一点。您只需要定义一些环境变量。有关详细信息,请参阅此处:How to add a default include path for gcc in linux?