GNU MakeFile Linux设置环境变量在调用Shell中是可能的



所以,我有一个很好的效果。在其中,我设置了一个变量LD_LIBRARY_PATH_VAL,以包含到可执行人员需要的所有库的所有路径。

现在,为方便起见,我想要一个规则,该规则通过以下操作来设置LD_LIBRARY_PATH环境变量:make set_ld_lib_path,以便我得到以下输出:

> echo $LD_LIBRARY_PATH
>       (empty)
> make set_ld_lib_path
> echo $LD_LIBRARY_PATH
> path/to/lib1:path/to/lib2

这是我的规则,因为目前是:

# Set the LD_LIBRARY_PATH needed to find all dependant libs - for convinience
LD_LIBRARY_PATH_VAL := test123
.PHONY: set_ld_lib_path
set_ld_lib_path: export LD_LIBRARY_PATH := $(LD_LIBRARY_PATH_VAL)
set_ld_lib_path:
    @$(ECHO) "$(COLOUR_ACT)LD_LIBRARY_PATH:$(COLOUR_RST) $$LD_LIBRARY_PATH"

注意:我将行LD_LIBRARY_PATH_VAL := test123放置为一个完整的例子 - 所以我想让ld_library_path的输出成为test123lib路径。

因此,我阅读了许多设置/导出变量的方法,但是我还没有找到在这里想做的方法。我认为这可能是不可能的,因为我无法更新调用shell的变量...但是如果有可能我问一个问题:)

信息更新我有GNU制作版本:

gnu make 4.1为x86_64-pc-linux-gnu版权所有(c)1988-2014 免费软件基金会公司。许可GPLV3 :GNU GPL版本3或 后来http://gnu.org/licenses/gpl.html这是免费软件:您 可以自由更改并重新分配它。没有保证, 法律允许的范围。

是的,你不能那样做。这是50年来所有UNIX系统的基本方面,儿童过程无法修改其父母的环境。制作可以做很多事情,但不能颠覆基本的限制。

最新更新