繁体   English   中英

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

[英]Compiling with MinGW32 GCC. Only tell link libraries once?

我正在通过命令行使用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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM