我正在尝试通过 GNU makefile 使用 armclang 编译器,但是在使用 -I 选项时两种工具之间存在冲突。
对于 armclang 编译器,-I 表示“将指定目录添加到搜索位置列表以查找包含文件。语法 -Idir”,不带空格。
对于 GNU makefile '-I dir' 具有相同的含义(但带有空格)。
在我的makefile中,我有以下内容:
$(aarch32_bootobj): %.o: %.s
@echo " [ASM ] $<"
@armclang --target=armv8a-arm-none-eabi -Icommon/shared -c $< -o $@
运行 Makefile 时,我收到以下警告和错误:
armclang: warning: argument unused during compilation: '-I common/shared'
aarch32/shared/bootcode.s:32:10: error: Could not find include file 'boot_defs.hs'
其中 boot_defs.hs 存在于 common/shared 下
在 makefile 之外运行相同的 armclang 命令时,它可以工作。因此我假设 makefile 已经格式化了 -Icommon/share 选项并在 -I 之后添加了自动空间。
有什么方法可以正确运行 armclang 命令?在其他世界中,是否可以让 makefile 解析 -Icommon/shared 而无需任何自动格式化?
我一直在尝试很多技巧来解决这个问题,但没有任何成功。
非常感谢提前。