gpt4 book ai didi

linux - Eclipse 在预构建中定义构建变量

转载 作者:行者123 更新时间:2023-12-03 09:46:16 25 4
gpt4 key购买 nike

我在/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 命令行模式一起使用
我怎样才能做到这一点 ?

最佳答案

显然,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->Command中,执行 /tmp/test.sh

关于linux - Eclipse 在预构建中定义构建变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65007843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com