Eclipse 在预构建中定义构建变量
Eclipse define build variable in pre-build
我在 /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
即可
我在 /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