0

次のmakefile:

#Regular c++ rules
CXX=g++
CXXFLAGS=-Wall -march=native -ffast-math -O3
CXX_OBJECTS=AbsNode.o rle16.o rle8.o

# Link command:
test : $(CXX_OBJECTS)
    $(CXX) $(CXX_OBJECTS) -o test

# Compilation commands: 
$.o : %.cpp
    $(CXX) -c $< $(CXXFLAGS) -o $@

出力

g++ -Wall -march=native -ffast-math -O3 -c -o AbsNode.o AbsNode.cpp
g++ -Wall -march=native -ffast-math -O3 -c -o rle16.o rle16.cpp
g++ -Wall -march=native -ffast-math -O3 -c -o rle8.o rle8.cpp

私が期待している間

g++ -c AbsNode.cpp -Wall -march=native -ffast-math -O3  -o AbsNode.o 
g++ -c rle16.cpp -Wall -march=native -ffast-math -O3 -o rle16.o 
g++ -c rle8.cpp -Wall -march=native -ffast-math -O3 -o rle8.o 

makefileに記載されているルールと比較して、g ++への引数の順序が入れ替わっているのはなぜですか?

4

1 に答える 1

0
$.o : %.cpp

% の代わりに $ を入力したため、非テンプレート ルールになりました。ただし、make には C++ ファイルのデフォルト ルールがあり、それはあなたの代わりに採用されました。引数の順序は、この内部規則に一致します。

于 2013-02-06T17:36:12.537 に答える