我抓住了制作错误:
make: no rule to make `|' needed by cryptest.exe
这是食谱:
cryptest.exe: public_service | libcryptopp.a $(TESTOBJS)
$(CXX) -o $@ $(CXXFLAGS) $(TESTOBJS) ./libcryptopp.a $(LDFLAGS) $(LDLIBS)
| 是Order-only prerequisites。仅限订单的先决条件通常有效,因此我不确定此实例中的问题是什么。
为什么我收到制作错误?
我对这个问题道歉。我想这个已被多次询问和回答过。很遗憾,Google和Bing似乎都没有使用 | 等字符。
答案 0 :(得分:1)
仅限订单的先决条件是GNU Make 3.80中引入的一项功能。
摘自NEWS
文件:
版本3.80
- 存在一项新功能:仅限订单的先决条件。这些先决条件会影响构建目标的顺序,但它们不会影响其依赖项的重建/不重建决策。也就是说,它们允许您在目标A之前要求构建目标B,而不要求在目标B更新时始终重建目标A.由Greg McGary提供此功能的补丁
<…@mcgary.org>
。