我已经编辑了我的/etc/bashrc来设置LD_LIBRARY_PATH就像我之前问的那样 。 但它似乎并没有生效。 即使echo $LD_LIBRARY_PATH确实显示我的修改。 并运行我的程序: LD_LIBRARY_PATH="/usr/local/lib" ./test.cgi explicity does LD_LIBRARY_PATH="/usr/local/lib" ./test.cgi work。 我需要重新启动系统吗? 这是怎么回事?
您需要exportvariables。
export LD_LIBRARY_PATH="/usr/local/lib" ./test.cgi
您的公式LD_LIBRARY_PATH="/usr/local/lib" ./test.cgi在当前shell中设置variables。 如果你只是运行LD_LIBRARY_PATH=/usr/local/lib ; ./test.cgi LD_LIBRARY_PATH=/usr/local/lib ; ./test.cgi你将在当前的shell中设置它,但不在subprocess./test.cgi中。
从bash手册页:
export: The supplied names are marked for automatic export to the environment of subsequently executed commands.
尝试运行ldconfig -v来重build库caching。