Ubuntu 22编译自定义C库报错:无$(LOBJECTS)目标规则
问题解决方法
核心错误:变量引用语法错误
你的Makefile里linux: $$(LOBJECTS)这一行用了双美元符号,这会让make把$(LOBJECTS)当成字面字符串,而不是展开成实际的目标文件列表。所以make找不到名为$(LOBJECTS)的目标,直接报错。
修复步骤:
- 修改Makefile里的linux目标定义,把双美元改成单美元:
linux: $(LOBJECTS) - 你的环境里
TARGET_ARCH变量未定义,导致CPPPFLAGS-x86_64无法被正确引入。可以二选一处理:- 执行编译命令时显式传递变量:
sh -c '$(MAKE) linux TARGET_ARCH=-x86_64' - 在Makefile开头添加默认值:
TARGET_ARCH ?= -x86_64
- 执行编译命令时显式传递变量:
其他潜在问题排查
- 确认
$(SYS)变量已正确设置为Linux-generic-x86_64,否则VARIANT路径无效。可提前创建目标目录:mkdir -p $(SYS)/.dynamic .dynamic_makefile中使用了$(CC)但未定义,建议在该文件开头添加:CC = cc
内容的提问来源于stack exchange,提问作者Antonello Zito
相关产品推荐
相关产品推荐

