使用CMake启用RUNPATH特性
使用CMake,启用RUNPATH
特性,可以参考官方帖子。
如下源码来自于上述帖子。
CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR) PROJECT(RUNPATH C) SET(CMAKE_VERBOSE_MAKEFILE ON) SET(CMAKE_INSTALL_RPATH $ENV{HOME}/lib) FILE(WRITE ${CMAKE_BINARY_DIR}/main.c "int main(void){return 0;}\n") ADD_EXECUTABLE(main main.c) INSTALL(TARGETS main RUNTIME DESTINATION bin) SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-new-dtags")
关于CMake和RPATH
,可以参考如下文档:
- RPATH handling
- CMAKE_SKIP_RPATH
- CMAKE_SKIP_BUILD_RPATH
- CMAKE_SKIP_INSTALL_RPATH
- CMAKE_BUILD_WITH_INSTALL_RPATH
- CMAKE_INSTALL_RPATH_USE_LINK_PATH
- INSTALL_RPATH
- CMAKE_INSTALL_RPATH
- 探讨CMake中关于RPATH的使用
- 再谈CMake与RPATH
关于RPATH
和RUNPATH
的区别,可以参考如下文章,介绍比较详细。
在命令行,执行如下命令,来查看相关的RPATH
信息。
readelf -d executable
在命令行,执行如下命令,可以查看当前查找到的动态库。
ldd executable
RPATH
、RUNPATH
、LD_LIBRARY_PATH
三者之间的关系。
RPATH
>LD_LIBRARY_PATH
>RUNPATH
- 当
RUNPATH
存在时,则RPATH
失效。
RUNPATH
不适用于间接依赖的库,使用RUNPATH
时,可能需要配合使用LD_LIBRARY_PATH
。
本文来自博客园,作者:jackieathome,转载请注明原文链接:https://www.cnblogs.com/jackieathome/p/17937635
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南