我正在通过命令行使用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
答案 0 :(得分:2)
据我所知,不,你不能。但这就是make和Makefiles被发明的原因:)我认为this tutorial足以让你开始为你的小项目编写一个像样的Makefile。
PS:快速&脏的方法就是编写一个简单的bash脚本来保存变量中的include目录,但是在我看来Makefiles是一个更好的选择,因为你不想重新发明轮子。
PS2:出于好奇,我发现确实有办法做到这一点。您只需要定义一些环境变量。有关详细信息,请参阅此处:How to add a default include path for gcc in linux?