私は環境変数を出力する簡単なコンソールアプリケーションがあります。実行実行する前に表示環境変数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
推奨Iスクリプトとしてダブルチェック:
export |grep LD_LIBRARY_PATH
ガット出力:
declare -x LD_LIBRARY_PATH="/home/vicp/aaa/bbb/Debug:/home/vico/ccc/ddd/Debug"
しかし、まだ、私のプログラムの開発にLD_LIBRARY_PATH
が表示されません。
の作品は推奨されているようでしたが、それでも自分のアプリケーションからのLD_LIBRARY_PATHが表示されません。問題のUPDの詳細を参照してください。 – vico
あなたの成功事例printfに問題のある感嘆符についてのセクションを含めるように私の答えを更新しました。 – mmlr