使用CMake启用RUNPATH特性

这篇具有很好参考价值的文章主要介绍了使用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

关于RPATHRUNPATH的区别,可以参考如下文章,介绍比较详细。

  • RPATH与RUNPATH的区别
  • RPATH和RUNPATH区别

在命令行,执行如下命令,来查看相关的RPATH信息。

readelf -d executable

在命令行,执行如下命令,可以查看当前查找到的动态库。

ldd executable

RPATHRUNPATHLD_LIBRARY_PATH三者之间的关系。

  • RPATH > LD_LIBRARY_PATH > RUNPATH
  • RUNPATH存在时,则RPATH失效。

RUNPATH不适用于间接依赖的库,使用RUNPATH时,可能需要配合使用LD_LIBRARY_PATH文章来源地址https://www.toymoban.com/news/detail-767469.html

到了这里,关于使用CMake启用RUNPATH特性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CMake教程系列-02-使用cmake代码生成二进制

    参考:Cmake安装以及升级(Ubuntu) Win10安装文件: 创建的目录以及代码如下: CMakeLists.txt sample.cpp 目录结构如下:注意多创建一个build目录存放中间文件和最终二进制文件 点击“Configure 我的的vs是2019,在Configure中选择了 点击“Configure”右边的“Generate”。 点击“Generate”右边

    2024年02月04日
    浏览(55)
  • 使用Docker部署GitLab服务并启用HTTPS

    使用官方提供的 Docker 镜像部署 GitLab 非常方便,相关的安装配置文档也非常详细。本文主要是对一次成功的部署流程进行记录,方便下次快捷部署。 官方提供了「社区版」和「企业版」两种镜像,这里采用「社区版」进行部署,执行以下命令拉取最新的 Docker 镜像。如果需要

    2024年02月03日
    浏览(39)
  • 如何使用组策略禁用/启用远程连接管理远程协助

    首先来完全了解下远程协助吧!远程控制是在网络上由一台电脑(主控端Remote/客户端)远距离去控制另一台电脑(被控端Host/服务器端)的技术。电脑中的远程控制技术,始于DOS时代。远程控制一般支持下面的这些网络方式:LAN、WAN、拨号方式、互联网方式。此外,有的远程控制软

    2024年02月06日
    浏览(56)
  • Cmake学习记录(九)--使用Cmake交叉编译Android .so库

    注意:本教程没有关于JNI接口的写法,只是把C代码编译成适合android平台的so库,想查看完整代码可以参考文末的第9条参考链接 目前Android编译.so的话使用Android Studio比较简单,但是有时候时候Android Studio的话还需要创建一个Android的项目,这里记录下脱离Android Studio单纯使用Cma

    2024年02月12日
    浏览(42)
  • 如何使用 CMD 命令禁用或启用笔记本自带键盘?

    虽然现在的笔记本越来越薄,但是笔记本键盘并不一定好用,很多人购买了笔记本后除了出差临时使用自带键盘外,估计有很多用户喜欢外置键盘使用。而有些时候,如果您的笔记本键盘出现损坏,那么使用外置键盘无疑是个好方法。如果您因为自带键盘无法使用或损坏同时

    2024年02月12日
    浏览(53)
  • CMake的安装和使用

    下载地址: Download | CMake  可以直接下载如下安装程序进行安装:  安装时注意,选择将cmake命令加入系统环境变量,如下: 或者装完后手动配置环境变量,将CMake安装路径下的bin目录加入环境变量,如下: 打开终端或cmd测试CMake安装是否成功,如下表示成功: 下载地址:

    2024年02月04日
    浏览(27)
  • CMake+QT使用教程

    下面是使用 Qt 用 C++ 编写的控制台应用程序的典型文件:CMakeLists.txt 项目目录结构 顶层CMakeLists.txt,包含整个项目的设置并调用add_subdirectory,顶层CMakeLists.txt设置的变量在子目录项目中可见 子目录项目CMakeLists.txt 项目目录结构 库项目文件(src/businesslogic/CMakeLists.txt) 最后,

    2024年02月15日
    浏览(52)
  • MacOS使用CMake

    CMake是开源、跨平台的编译和打包工具,在有跨平台需求的项目里面,CMake是常用的工具。它可以根据目标平台生成不同的Makefile或者工程文件,生成Makefile后使用make编译代码。本文介绍CMake的安装和入门使用。 安装CMake 使用brew安装cmake,等待安装完成即可 如果没有homebrew,首

    2024年02月05日
    浏览(46)
  • VSCode之CMake使用

    下载 对应平台的VScode 安装C++扩展 安装Cmake 工具扩展 并行需要安装 Cmake,编译器,调试器和构建工具 虽然咱们使用VSCode编辑代码,但是 编译、调试工作,却是使用的是 系统的 编译器、调试器和像Cmake这样的构建工具。 因此也要做 针对性检查 ,我们这里就略过了。 针对新项

    2024年02月16日
    浏览(36)
  • CMake个人理解和使用

    前言最简单的CMake工程项目搭建项目编译与执行项目扩展多源码项目个人感悟CMake管理子目录CMake管理子模块交叉编译前期准备编写编译脚本在Android项目中使用CMake目录结构构建静态库使用静态库配置Gradle配置CMake找到头文件找到静态库链接静态库在源码中使用扩展总结 CMake是

    2024年02月02日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包