簡體   English   中英

makefile 規則中的 % 是什么意思

[英]what does % mean in a makefile rule

所以我知道模式規則%.o: %.cpp用於從file.cpp制作任何file.o但我想要的是不同的。 假設我想從folder1/file1.cpp 創建一個file1.o ,從folder2/file2.cpp 創建一個 file2.o 我想做的是:

file1=folder1/file1
file2=folder2/file2

%.o: $(%).cpp

但這不起作用。 除了手動執行之外,有沒有人知道如何做到這一點:

file1=folder1/file1
file2=folder2/file2

file1.o: $(file1).cpp

file2.o: $(file2).cpp

GNU Make 中%的含義記錄在定義和重新定義模式規則部分。

如果目標名稱是foo.o ,則%foo 我不想再深入了解 go 在這里%的含義。

在您的情況下,object 文件和源文件之間的依賴關系不能使用單個簡單規則輕松表達。 我建議明確規則而不是使用基於模式的規則。

file1.o : folder1/file1.cpp
file2.o : folder2/file2.cpp

您還需要添加命令來構建這些目標。

file1.o : folder1/file1.cpp
    $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $^

file2.o : folder2/file2.cpp
    $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $^

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM