在emacs中使用eshell时遇到一个问题:想要改动shared library的搜索路径,只知道shell里是这只LD_LIBRARY_PATH,但不知道如何在eshell中设置。
尝试修改.bashrc文件,不管用——如果是M-x shell启动的shell倒是可以,因为它会去读这个文件,但eshell没有去读。
google 了半天也没找到需要的答案,不过在comp.emacs中看到一段话,说eshell在eamcs中运行,是其子进程,当继承父进程的环境变量。我想我在窗口下使用emacs,emacs应该是窗口管理器的子进程,窗口管理器启动时会读.xsession文件,如果在这个文件里对环境变量进行定义,应该最终继承到eshell。
尝试了一下,果然。进入emacs,M-x getenv,查看LD_LIBRARY_PATH果然是我重新定义的值,进入eshell,运行程序,OK。