设置LD_LIBRARY_PATH不够?

我已经编辑了我的/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。