C++ netbeansc++;:在生成之前执行源脚本
在Netbeans环境(v8.2)中运行C++ netbeansc++;:在生成之前执行源脚本,c++,netbeans,makefile,environment-variables,development-environment,C++,Netbeans,Makefile,Environment Variables,Development Environment,在Netbeans环境(v8.2)中运行Makefile之前,我想source/opt/something/somescript.com。似乎只有蚂蚁和java才有答案,而不是泛型C++。< /P> Netbeans中只有2个文件可供使用: 用于此目的的Makefile configurations.xml文件,这可能就是实现这一点的方法 然而,查看该配置文件,似乎没有任何关于运行脚本的内容,我也找不到任何在线手册来解释哪些XML标记可用 因此,我的问题是:在构建shell脚本之前,如何将Net
Makefile
之前,我想source/opt/something/somescript.com
。似乎只有蚂蚁和java才有答案,而不是泛型C++。< /P>
Netbeans中只有2个文件可供使用:
Makefile
configurations.xml
文件,这可能就是实现这一点的方法源代码
- 您所提供的链接证明Makefile是无用的,实际上它至少包含一个将脚本“来源”到构建中的方法:调用shell(使用
shell
builtin)以:
- 源代码脚本(可能会将所有输出重定向到
/dev/null
)
- 调用
env
并按摩输出,为每个变量发出VAR:=VALUE
和export VAR
- (可选)将结果写入文件
然后,如果结果进入一个文件--包含该文件;否则,只需eval
shell的输出即可
- 另一种可能是,在运行Make希望运行的脚本之前,调整magic
SHELL
变量以获取脚本的源代码。如果您的脚本很重,这可能会变得很明显,但如果它只是设置了一些环境变量(我对Netbeans一无所知,所以不能说),这可能是正常的
下面是第一种方法的示例配方(实际上不要将所有内容缩进4个空格,这只是我在与StackOverflow作斗争):
#在Makefile开头的某个地方
定义源环境
$(shell.1>/dev/null&&env|sed-e's/=/:=/'-e's/^/export/'>$(notdir$1.mk)
恩德夫
$(调用emit-sourceed-env,/opt/something/somescript.com)
包括somescript.com.mk
您提出的建议不在Netbeans构建方案的框架内。我完全不理解你说的话(对不起),因为这在Netbeans中是不可能的。我所能做的就是修改那个make文件。您会在Makefile中提供解决问题的方法,还是提供在Netbeans上实现这一点的方法?在答案中添加了一个工作的GNU make示例,希望能有所帮助
# 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