簡體   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