Cygwin编译Titan遇Makefile报错:No rule to make target '-'
错误原因及解决办法
错误原因
你在Makefile.personal里使用了:-作为变量赋值符号,这不是Makefile的合法语法。Make会把TTCN3_DIR :- ...解析成「目标TTCN3_DIR依赖于-和D:/cygwin64/home/SUBBARAM/install」,但不存在名为-的构建规则,因此触发报错。
:-是shell脚本或其他语言里的默认值赋值语法,在Makefile环境中不适用。
解决办法
将所有行的:-替换为Makefile支持的赋值符号:
- 若希望变量未定义时才设置该值(适合自定义配置覆盖项目默认),使用
?= - 若希望强制设置变量值(直接覆盖任何已有定义),使用
=或:=(:=为立即展开,=为延迟展开,当前场景下两者差异可忽略)
修改后的Makefile.personal示例(使用?=):
TTCN3_DIR ?= D:/cygwin64/home/SUBBARAM/install OPENSSL_DIR ?= /usr JDKDIR ?= /etc/java-config-2/current-system-vm XMLDIR ?= /usr JNI ?= yes GEN_PDF ?= no
修改完成后重新执行make -j5即可正常运行。
内容的提问来源于stack exchange,提问作者SUBARAM RAM
相关产品推荐
相关产品推荐

