linux - 为什么 -rpath 不起作用但 "export LD_LIBRARY_PATH=..." 起作用?
问题描述
我正在尝试编写我的 makefile 来编译一个依赖于 Ubuntu 中 CUDA 的动态库。以下是我的命令:
g++ -std=gnu++11 -w -fopenmp -fPIC -shared -o libdetect.so obj/detect.o -lpthread -lstdc++ -L ../third_party -ldet_engine -Wl,-rpath=../third_party/lib/ubuntu-cuda10:../third_party -I../third_party/include -I. -I /usr/local/cuda/include
任何与 CUDA 相关的 .so 都位于“../third_party/lib/ubuntu-cuda10”中。但是在我执行“make”之后,“ldd libdetect.so”的内容中仍然没有包括cublas和cudart在内的CUDA组件:
...
libcudart.so.10.0 => not found
libcublas.so.10.0 => not found
libcudart.so.10.0 => not found
...
但是,如果我将“../third_party/lib/ubuntu-cuda10”附加到我的 LD_LIBRARY_PATH 中,一切都很好。
我了解到“-rpath”的优先级高于 LD_LIBRARY_PATH,但为什么“-rpath”不起作用但 LD_LIBRARY_PATH ?提前致谢。
解决方案
推荐阅读
- sql-server - 更快地更新多行 SQL Server
- node.js - DynamoDB - 从多个主键(分区键+排序键/哈希键+范围键)获取最新数据
- azure-devops - 为什么 AzureRmWebAppDeploymen 要求我订阅,然后尝试将其用作服务连接?
- c# - CEF 线程问题 - 最简单的修复?
- python - 创建一个可以使用 Python 3 和 tkinter 打开/关闭相机图像的 GUI
- python - 如何导入 Maya Python API?
- python - OpenCV Watermark保持纵横比不给出相同的输入/输出结果
- html - CSS如何使这个div居中
- excel - Excel 对 Index - match 和 sumifs 组合的帮助?
- sql-server - 如何使用spring框架将LDAP数据添加到关系数据库表中的查询数据中