如何在Linux中显示当前目录的路径?

在Linux系统中,.so文件是动态链接库(Shared Object)的扩展名,用于存储共享代码,要在当前目录下查找并使用.so文件,需要设置环境变量LD_LIBRARY_PATH

以下是详细步骤:

如何在Linux中显示当前目录的路径?插图1
(图片来源网络,侵删)

1、临时修改

在终端中执行以下命令:

```bash

export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH

```

如何在Linux中显示当前目录的路径?插图3
(图片来源网络,侵删)

这种方式仅对当前会话有效,关闭终端后失效。

2、永久修改当前用户

在用户的~/.bash_profile文件中添加以下内容:

```bash

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.

如何在Linux中显示当前目录的路径?插图5
(图片来源网络,侵删)

```

保存并关闭文件,然后执行以下命令使更改立即生效:

```bash

. ~/.bash_profile

```

这样设置后,当前用户每次登录都会加载当前目录的.so文件。

3、永久修改所有用户

修改系统的/etc/profile文件,在文件末尾添加以下内容:

```bash

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.

```

这样设置后,所有用户都会优先加载当前目录的.so文件。

4、在so库内获取自身路径

可以使用以下C代码函数获取当前.so库所在目录:

```c

#include <dlfcn.h>

#include <string.h>

#include <string>

char* GetModuleCurPath(char* sCurPath) {

std::string wdir;

Dl_info dl_info;

dladdr((void*)GetModuleCurPath, &dl_info);

std::string path = dl_info.dli_fname;

wdir = path.substr(0, path.find_last_of('/') + 1);

strcpy(sCurPath, wdir.c_str());

return sCurPath;

}

```

如果.so库放在可执行程序同级目录或子目录下调用,则得到的路径是相对于可执行程序的绝对路径。

以上就是关于“linux so 当前目录”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/71476.html

小末小末
上一篇 2024年10月8日 13:33
下一篇 2024年10月8日 13:44

相关推荐