【发布时间】:2021-12-08 06:07:27
【问题描述】:
我创建了一个 C 项目,在不同的目录中有多个文件,这些文件是使用 Makefile 编译的。该项目在 LIB_x86_64 中有库,在 include 中有头文件。我需要使用 meson-build 或 ninja 编译所有这些。 我写了一个 build.ninja 文件,其中包含
rule cc
command = gcc -c -o $out $in
description = CC $out
rule link
command = gcc -o $out $in
description = LINK $out
build led.o: cc client/src/led.c
build demoCAN.o: cc client/src/demoCAN_AP.c
build commander_test.o: cc client/test/commander_test.c
build led: link led.o
build demoCAN: link demoCAN.o
build commander_test: link commander_test.o
但是我收到关于找不到头文件的错误。建议将不胜感激。
【问题讨论】:
-
仔细检查构建环境中的路径变量是否已设置?这个conversation on sub-processes to set paths 是旧的,但可能是相关的。 (我希望现在
ninja提供设置路径的能力) -
这里真的需要担心环境变量吗?实际上我在包含目录中有一个头文件,我希望 ninja 引用该目录。
-
如果你没看过这里,在The Ninja build system中搜索
C/C++ header dependencies -
你是想用介子来生成你的忍者,还是直接写忍者? Ninja 真的不是直接写的,它真的是由 meson 或 cmake 之类的东西生成的
-
@dcbaker 是的,我目前正在编写忍者脚本,但我想使用介子执行此操作,但无法使用多个 c 文件执行此操作。
标签: c makefile ninja meson-build