Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – makefile可以更新调用环境吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

是否可以从makefile更新环境?我希望能够创建一个目标来为它们设置客户端环境变量.像这样的东西: AXIS2_HOME ?= /usr/local/axis2-1.4.1 JAVA_HOME ?= /usr/java/latest CLASSPATH := foo foo setenv: export AXIS2_HOME export JAVA_HOME exp
@H_607_10@
是否可以从makefile更新环境?我希望能够创建一个目标来为它们设置客户端环境变量.像这样的东西:
AXIS2_HOME ?= /usr/local/axis2-1.4.1
JAVA_HOME  ?= /usr/java/latest
CLASSPATH  := foo foo

setenv:
    export AXIS2_HOME
    export JAVA_HOME
    export CLASSPATH

这样客户就可以做到:@H_404_5@ @H_873_16@make setenv all java MainClass

并且让它工作而不需要为java执行本身设置类路径.@H_404_5@

或者我是否希望以错误的方式做到这一点并且有更好的方法?@H_404_5@

解决方法

不,您无法以这种方式更新调用过程中的环境.通常,子进程无法修改父进程的环境.一个值得注意的例外是Windows上的批处理文件,从cmd sHell运行时.根据您@L_675_11@的示例,我猜您不是在Windows上运行.

通常,您要完成的是使用sHell脚本完成设置环境然后调用您的预期进程.例如,您可以编写一个go.sh脚本,如下所示:@H_404_5@

!#/bin/sh
AXIS2_HOME=/usr/local/axix2-1.4.1
JAVA_HOME=/usr/java/latest
CLASSPATH=foo foo
export AXIS2_HOME
export JAVA_HOME
export CLASSPATH
java MainClass

制作go.sh可执行文件,现在您可以将您的应用程序运行为./go.sh.如果您愿意,也可以使脚本更精细 – 例如,您可能希望将“MainClass”作为脚本的参数而不是对其进行硬编码.@H_404_5@

大佬总结

以上是大佬教程为你收集整理的linux – makefile可以更新调用环境吗?全部内容,希望文章能够帮你解决linux – makefile可以更新调用环境吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。