【发布时间】:2015-03-15 19:51:12
【问题描述】:
根据Defining and Redefining Pattern Rules 上的手册(如果我没看错的话):
'%' 字符匹配任何零个或多个字符的序列...
但以下内容与bench.cpp 和bench2.cpp 都不匹配:
bench%.o : bench%.cpp
$(CXX) $(CXXFLAGS) -DCRYPTOPP_DATA_DIR='"$(PREFIX)/share/cryptopp"' -c $<
%.o : %.cpp
$(CXX) $(CXXFLAGS) -c $<
这是我在运行 make 时看到的:
$ rm bench*.o
$ make static dynamic cryptest.exe PREFIX=/usr/local
make: Nothing to be done for `static'.
make: Nothing to be done for `dynamic'.
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c bench.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -DCRYPTOPP_DATA_DIR='"/usr/local/share/cryptopp"' -c bench2.cpp
在上面,bench.cpp 和 bench2.cpp 都应该有 -DCRYPTOPP_DATA_DIR='"/usr/local/share/cryptopp"'。我也尝试过使用星号 (*),但没有任何乐趣。
如何制定同时匹配bench.cpp 和bench2.cpp 的规则?
【问题讨论】:
-
好吧,你总是可以使用
benc%.o : benc%.cpp,并希望你没有任何其他来源匹配 benc*.cpp 除了bench.cpp和bench2.cpp:)