我有簡單的控制檯應用程序,它打印環境變量:顯示環境變量LD_LIBRARY_PATH
int main(int argc, char **argv, char **envp)
{
printf("Scanning for LD_LIB_PATH\n");
for (char **env = envp; *env != 0; env++)
{
char *thisEnv = *env;
std::string s= *env;
if (s.find("LD_LIBRARY_PATH")!=std::string::npos)
{
printf("!!!!!!! %s\n", thisEnv);
}
printf("%s\n", thisEnv);
}
}
之前運行的可執行程序我運行腳本將LD_LIBRARY_PATH
export LD_LIBRARY_PATH=~/aaa/bbb/Debug:~/ccc/ddd/Debug
echo "searching:"
export | grep LD_LIBRARY
echo "done"
腳本運行正常與輸出:
exporting
searching:
declare -x LD_LIBRARY_PATH="/home/vicp/aaa/bbb/Debug:/home/vico/ccc/ddd/Debug"
done
我運行可執行文件,它發現許多變量,但沒有環境t變量LD_LIB_PATH
。爲什麼?
UPD
至於建議我腳本. ./script.sh
然後仔細檢查與命令:
export |grep LD_LIBRARY_PATH
得到輸出:
declare -x LD_LIBRARY_PATH="/home/vicp/aaa/bbb/Debug:/home/vico/ccc/ddd/Debug"
但仍然沒有看到我的PROGRAMM LD_LIBRARY_PATH
。
照建議,但仍然沒有看到我的應用程序LD_LIBRARY_PATH。 UPD中的更多詳細信息請見正文。 – vico
我已經更新了我的答案,在您的成功案例printf中包含有關有問題的感嘆號的部分。 – mmlr