我想在 Netbeans 环境 (v8.2) 中运行 Makefile
之前先source/opt/something/somescript.com
。似乎只有 Ant 和 Java 有关于此的答案,而通用 C++ 没有。
在 Netbeans 中只有 2 个文件可以玩:
Makefile
,即 useless为此目的configurations.xml
文件,这可能是执行此操作的方法。
但是,查看那个配置文件,似乎没有关于运行脚本的任何内容,而且我在网上找不到任何手册来解释哪些 XML 标签可用。
所以我的问题是:如何配置 Netbeans 在构建之前source
shell 脚本?
最佳答案
(假设 GNU Make)
您提供的链接证明 Makefile 将毫无用处,实际上至少包含一个将脚本“采购”到您的构建中的方法:调用 shell(使用
shell
内置)到:- 源你的脚本(可能将所有输出重定向到
/dev/null
) - 调用
env
并修改输出以发出VAR:=VALUE
并为每个变量export VAR
- (可选)将结果写入文件
然后,如果结果进入一个文件——
include
那个文件;否则只是eval
shell
的输出。- 源你的脚本(可能将所有输出重定向到
- 另一种可能性是调整神奇的
SHELL
变量以在运行 Make 想要它运行的任何内容之前获取您的脚本。如果您的脚本很重,这可能会变得很明显,但如果它只是设置一些环境变量,则可能没问题(我对 Netbeans 一无所知,所以不能说)。
这是第一种方法的示例配方(实际上不要将所有内容缩进 4 个空格,这只是我在 StackOverflow 上苦苦挣扎):
# Somewhere at the beginning of the Makefile define emit-sourced-env $(shell . $1 > /dev/null && env | sed -e 's/=/:=/' -e 's/^/export /' > $(notdir $1).mk) endef $(call emit-sourced-env,/opt/something/somescript.com) include somescript.com.mk
关于c++ - Netbeans C++ : Execute a source script before building,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41870853/