我正在嘗試make一個makefile來編譯子文件夾中的各種示例。由以下組成的makefile:GNU不識別%
S_1_2.exe : Twister.cpp Parsing.cpp ./Surfaces/S_1_2.cpp
g++ -o [email protected] $^ -I . -W -Wall
使用命令「make S_1_2.exe」運行時可以正常工作。但是:
%S_1_2.exe : Twister.cpp Parsing.cpp ./Surfaces/S_1_2.cpp
g++ -o [email protected] $^ -I . -W -Wall
失敗,即使與命令運行make S_1_2.exe,出現錯誤 「令:*沒有規則,使目標的S_1_2.exe'停止。」
不應該%S_1_2.exe模式匹配,所以匹配S_1_2.exe?在這種情況下,爲什麼它不符合這個規則?
我正在使用GNU Make 3.81
你確定這三個源文件存在嗎? – Beta 2010-11-07 15:36:59
是的,它們都存在。就像我說的第一個命令運行良好,並具有完全相同的依賴關係。 – 2010-11-07 15:43:25
我正在運行GNUMake 3.81,並且'%S_1_2.exe'出現同樣的錯誤,但是使用'%_1_2.exe',只有其中一個源丟失時纔會出現錯誤。 – Beta 2010-11-07 19:33:21