gpt4 book ai didi

c - LD_LIBRARY_PATH,linux中的共享库路径

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:25 26 4
gpt4 key购买 nike

我写了一个共享对象,比如说libsd.so,我把libsd.so和它的头文件sd.h放在~/lib.

这是另一个使用libsd.so的程序,比如test.c,然后像这样编译它:

$ gcc -o test test.c -I~/lib -L~/lib -lsd

然后我像这样运行测试:

$ ./test
./test_sd: error while loading shared libraries: libsd.so: cannot open shared object file: No such file or directory

所以我设置了export LD_LIBRARY_PATH=.,然后就可以了。但是,如果我取消设置 LD_LIBRARY_PATH 并将 LD_LIBRARY_PATH=~/lib 放入我的 ~/.bashrc,那么 source ~/.bashrc,同样它对 ./test 不起作用,为什么?

export LD_LIBRARY_PATH=~/lib 与将LD_LIBRARY_PATH=~/lib 放入~/.bashrc 有什么区别?

最佳答案

如果没有导出,您声明的 LD_LIBRARY_PATH 仅在脚本 (.bashrc) 中有效。通过导出它应该可以工作,但像这样设置 LD_LIBRARY_PATH 通常不是一个好主意。

如果您不想在系统路径(例如/usr/lib)中安装您的库,您可能应该使用在本地设置 LD_LIBARAY_PATH 并启动您的应用程序的脚本。

关于c - LD_LIBRARY_PATH,linux中的共享库路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43915402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com