ldd提示not a dynamic executable
时间: 2024-03-28 22:36:18 浏览: 28
这个问题通常出现在尝试使用 ldd 命令查看一个非动态链接库文件或者不是 ELF 格式的可执行文件时。因为 ldd 命令只能对动态链接库文件或者 ELF 格式的可执行文件进行检查。
所以如果你使用 ldd 命令查看的是一个非动态链接库文件或者不是 ELF 格式的可执行文件,就会出现 "not a dynamic executable" 的提示。你可以尝试使用其他命令来查看这些文件的信息,比如 file 命令可以用来查看文件类型。
相关问题
ldd not found
ldd not found是一个常见的错误信息,表示在执行程序时找不到所需的共享库。这个问题通常发生在默认库搜索路径下找不到所需的库的情况下。解决该问题的一种方法是通过设置LD_LIBRARY_PATH环境变量来指定共享库的路径。执行命令"export LD_LIBRARY_PATH=..."来设置路径,将"..."替换为实际的库路径。
另外,也有可能出现错误日志中的"cmake error while loading shared libraries No such file or directory"信息。这个错误表示在使用CMake编译生成动态库时,找不到所依赖的第三方动态库。解决该问题的方法是使用RPATH来指定动态库的路径。RPATH是一种链接时的选项,可以在可执行文件或动态库中嵌入运行时所需的库的路径信息。通过使用RPATH,可以确保在执行程序时正确地找到依赖的动态库。具体的解决方法可以参考相关的文档和资料。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Linux C编程问题:ldd 提示not found](https://blog.csdn.net/guangyacyb/article/details/85116560)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [错误日志:cmake error while loading shared libraries No such file or directory | ldd =>not found](https://blog.csdn.net/qq_28087491/article/details/128665295)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
ldd -bash: ldd: command not found
ldd是一个Linux命令,用于打印可执行文件或共享库的依赖关系。如果在执行ldd命令时出现"-bash: ldd: command not found"的错误提示,说明系统中没有安装ldd命令或者该命令的路径没有被正确添加到系统的环境变量中。
要解决这个问题,可以尝试以下方法:
1. 确认ldd是否已安装:使用以下命令检查系统中是否已安装ldd命令:
```shell
which ldd
```
如果没有输出结果,则表示ldd未安装。
2. 安装ldd命令:如果ldd未安装,可以使用包管理器安装。例如,在CentOS上可以使用以下命令安装ldd:
```shell
yum install glibc-utils
```
3. 添加ldd命令路径到环境变量:如果ldd已安装但仍然出现"-bash: ldd: command not found"的错误提示,可能是因为ldd命令的路径没有被正确添加到系统的环境变量中。可以使用以下命令将ldd命令的路径添加到环境变量中:
```shell
export PATH=$PATH:/usr/bin
```
这里假设ldd命令的路径是/usr/bin,如果实际路径不同,请根据实际情况进行修改。
4. 重新执行ldd命令:完成上述步骤后,再次执行ldd命令,应该能够正常使用了。