是否可以編寫通用Makefile,它可以獲得任何目標,並像gcc的包裝一樣,但是帶有參數?例如,這意味着使用make作爲gcc的Makefile文件
make 01.c
都會有相同的結果
g++ -o 01.out 01.c
是否可以編寫通用Makefile,它可以獲得任何目標,並像gcc的包裝一樣,但是帶有參數?例如,這意味着使用make作爲gcc的Makefile文件
make 01.c
都會有相同的結果
g++ -o 01.out 01.c
make
已經有幾個"implicit rules"做你想要什麼。
例如,即使沒有makefile文件,
make 01.o
將運行:
c++ -c -o 01.o 01.cpp
如果發現在你的當前目錄下名爲01.cpp
文件。如果您想傳遞更多標誌,則可以設置CXXFLAGS
環境變量。如果您確實使用g++
而不是系統編譯器,則也可以設置CXX=g++
。
是 - 您使用隱式規則。
Summat像組默認的潛規則
您可以使用通配符也許(如果沒記錯的話)
.cpp.o:
$(CCC) $(CFLAGS) $< -o [email protected]
- %
。
但是,在命令行中指定的東西是目標,而不是源 - 你想要什麼,而不是你擁有什麼。
看起來你想要的東西大約是:
%.out: %.c
g++ -o [email protected] $<
這意味着:使(東西)的.out,首先要確保你有(點).C,然後運行G ++ -o(東西) .out(something).c
$ @始終是目標文件,$ <是第一個先決條件。
您需要運行make 01.out
而不是make 01.c