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和链接库-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
4

1 回答 1

2

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

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

PS2:出于好奇,我发现确实有办法做到这一点。您只需要定义一些环境变量。有关详细信息,请参见此处:如何在 linux 中为 gcc 添加默认包含路径?

于 2012-07-25T09:06:28.550 回答