【问题标题】:Eclipse define build variable in pre-buildEclipse 在预构建中定义构建变量
【发布时间】:2021-03-08 11:53:27
【问题描述】:

我在 /tmp/test.sh 中创建了简单的 shell 脚本文件

#!/bin/sh
echo 'aaaa'

在 Eclipse->C/C++ Build->Setting->Build Step -> Pre-build steps->Command 中,我添加了TEST =/tmp/test.sh

比在 C/C++ Build->Setting->Tool Settings->Cross GCC Compiler ->Command line pattern 中,我尝试像-D ${TEST} 这样使用这个变量,所以它通过-D aaaa(shell 脚本的输出)

但在构建控制台中我没有看到 -D aaaa 已传递给 gcc ,实际上我根本没有看到 -D

这是为什么呢?我想在预构建中设置变量,它将成为 shell 脚本的输出,并将其与 gcc 命令行模式一起使用

我该怎么做?

【问题讨论】:

    标签: linux shell gcc build eclipse-cdt


    【解决方案1】:

    显然,CDT 托管构建不允许运行外部命令来分配环境变量、构建变量或命令行标志,因此在该阶段执行脚本不起作用。

    不是对如何使用 gcc 命令行模式执行此操作的问题的直接答案,但如果您真的只想将定义与从脚本中获得的结果一起传递给预处理器,您可以使用脚本来更新或创建一个包含在某处的头文件,例如:

    #!/bin/sh
    echo "#ifndef __MYVARHEADER__" > ../include/myvarheader.h
    echo "#define __MYVARHEADER__" >> ../include/myvarheader.h
    echo "#define aaaa" >> ../include/myvarheader.h
    echo "#endif" >> ../include/myvarheader.h
    

    在Eclipse->C/C++ Build->Setting->Build Step -> Pre-build steps->命令,执行/tmp/test.sh

    【讨论】:

      猜你喜欢
      • 2020-06-14
      • 1970-01-01
      • 2018-04-27
      • 2017-09-28
      • 2019-11-08
      • 1970-01-01
      • 1970-01-01
      • 2011-09-22
      • 1970-01-01
      相关资源
      最近更新 更多