【问题标题】:use variable into Openwrt Makefile在 Openwrt Makefile 中使用变量
【发布时间】:2021-06-12 15:48:49
【问题描述】:

我想在 openwrt Makefile.am 中使用变量,如下所示:

bin_PROGRAMS = TOTO

SOURCES =                               \
    ../src/cli.c                            \
    ../src/common.h                     \
    ../src/vendor/$(VENDOR)/common/vfile.h      \
    ../src/vendor/$(VENDOR)/common/vfile.c  

在 configure.ac 文件中我定义了变量:

VENDOR='IEEE'
AC_SUBST([VENDOR])

在构建 openwrt 包时出现以下错误:

Makefile:1212: ../src/vendor/IEEE/common/.deps/vfile.Po: No such file or directory

但是如果获得了具有以下路径的文件,则在 build_dir 文件夹下:

./src/vendor/$(VENDOR)/common/.deps/vfile.Po

Makefile.am 中的变量有什么问题!!

【问题讨论】:

  • AC_SUBST 在您的 .in 文件中替换像 @...@ 这样的标记。它不会自动创建 makefile 变量。你在Makefile.am 的任何地方都有@VENDOR@,比如VENDOR = @VENDOR@
  • 是的,我在 Makefile.in 中有变量: : VENDOR = @VENDOR@
  • 抱歉,您必须调试它。在第 1212 行生成的 Makefile 中有什么内容?请注意,缺少的路径以../src 开头,而您在上面显示的路径是./src...也许在您的Makefile.am 某处还有一个额外的.
  • 问题是:文件夹 IEEE 没有创建,而是创建了文件夹 $(VENDOR),然后在这个路径找不到 vfile.Po:/src/vendor/IEEE/ common/.deps/vfile.Po

标签: linux makefile openwrt


【解决方案1】:

此配置将解决问题:

bin_PROGRAMS = TOTO

SOURCES =                               \
    ../src/cli.c                            \
    ../src/common.h                     \
    ../src/vendor/@VENDOR@/common/vfile.h      \
    ../src/vendor/@VENDOR@/common/vfile.c 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    相关资源
    最近更新 更多