CMake 指定链接选项

这篇具有很好参考价值的文章主要介绍了CMake 指定链接选项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CMake指定目标的链接选项,有三种方案

方案一

通过target_link_options来设置,(version 3.13.以上)

add_executable(mymathApp mymathApp.cc)
target_link_options(mymathApp PRIVATE -wl,-shared,-z,noexecstack)

方案二

通过目标的属性来设置

set_target_properties(<executable_name>
    PROPERTIES
    LINK_OPTIONS "-wl,-z,-relro"
    )

或者

set_target_properties(<executable_name>
    PROPERTIES
    LINK_FLAGS "-wl,-z,-relro"
    )

方案三

set(LINK_FLAGS)

## The options for the shared library
set(LINK_FLAGS    "-rdynamic -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now")
 
## the actual options for gcc
set(CMAKE_C_FLAGS             "-fsigned-char ${COMPILE_FLAGS}")
set(CMAKE_C_FLAGS_DEBUG       "-g")
set(CMAKE_C_FLAGS_RELEASE     "-DNDEBUG")

 
## The linker options
set(CMAKE_SHARED_LINKER_FLAGS "${LINK_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS    "${LINK_FLAGS}")

参考:

CMake教程系列-04-编译相关函数 - 知乎

CMake 指定目标的链接选项_icbm的博客-CSDN博客_cmake添加链接选项

Gcc链接选项_jiang010的博客-CSDN博客_gcc 链接选项文章来源地址https://www.toymoban.com/news/detail-622008.html

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

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

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

相关文章

  • CMake TcpServer项目 链接静态库/动态库

    一、链接静态库   查看项目结构 CMakeLists.txt  执行命令和结果:   二、链接动态库 查看项目结构 CMakeLists.txt 执行命令和结果:

    2024年01月22日
    浏览(45)
  • CMake入门教程【高级篇】编译选项target_compile_options

    target_compile_options 命令允许用户为特定目标(如可执行文件或库)指定编译器选项,这对于优化构建过程和确保代码兼容性至关重要。

    2024年01月15日
    浏览(41)
  • 现代CMake高级教程 - 第 3 章:链接库文件

    双笙子佯谬老师的【公开课】现代CMake高级教程课程笔记 main.cpp 调用 mylib.cpp 里的 say_hello 函数 1. 直接链接到一起编译 2. mylib 作为一个静态库 编译: 生成了 libmylib.a: 3. mylib 作为一个动态库 编译: 4. mylib 作为一个对象库 对象库类似于静态库,但不生成 .a 文件,只由 CMake

    2024年02月02日
    浏览(42)
  • CMake 链接时出现undefined reference to 错误

    一、问题背景 之前新建了一个项目项目文件分布为 1. src/MROR.cpp 2.include/MROR.h 3.main.cpp 执行cmake出现undefined reference toxx,显示main函数中的类成员函数调用没有声明,但是所有声明已经在MROR.h中写了 二、解决方法 我查了很多网上资料 解决方法 1) 可能MROR.cpp文件没有链接到项目,

    2024年02月09日
    浏览(60)
  • 现代CMake高级教程 - 第 5 章:链接第三方库

    双笙子佯谬老师的【公开课】现代CMake高级教程课程笔记 案例 使用 tbb 库 main.cpp 直接链接 tbb CMakeLists.txt 直接链接 tbb 的缺点: 如果这样直接指定 tbb,CMake 会让链接器在系统的库目录里查找 tbb,他会找到 /usr/lib/libtbb.so 这个系统自带的,但这对于没有一个固定库安装位置的

    2024年02月02日
    浏览(56)
  • CMake入门教程【基础篇】4.target_include_directories包含指定文件夹头文件

    target_include_directories包含指定文件夹头文件 target_include_directories() 指定目标包含的头文件路径  |-📁prj3   |-- 🎴CMakeLists.txt   |-📁include    |-- 📄Hello.h   |-📁src    |-- 📄Hello.cpp    |-- 📄main.cpp

    2023年04月09日
    浏览(35)
  • cmake报错:CMake Error at /usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:603 (message)...

    CMake Error at /usr/share/cmake-3.22/Modules/ FindPkgConfig .cmake:603 (message): A required package was not found Call Stack (most recent call first): /usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:825 (_pkg_check_modules_internal) CMakeLists.txt:99 (pkg_check_modules)

    2024年02月05日
    浏览(46)
  • cmake工程出现CMake Error at /usr/local/share/cmake-3.25/Modules/CMakeDetermineCompilerId.cmake:739

    描述:ubuntu20.04在执行cmake -S . -B build时出现、 CMake Error at /usr/local/share/cmake-3.25/Modules/CMakeDetermineCompilerId.cmake:739 (message):   Compiling the CUDA compiler identification source file   \\\"CMakeCUDACompilerId.cu\\\" failed.   Compiler: /usr/bin/nvcc   Build flags:   Id flags: --keep;--keep-dir;tmp -v      The output was:  

    2024年04月17日
    浏览(88)
  • [CMake教程] CMake列表 - list

    列表在CMake中大量使用。初始化列表语法如下: 归根结底,列表只是一个由分号分隔列表项的单个字符串,这使得操作单个列表项变得不太方便。CMake提供了 list() 命令来简化这类任务,他的基本语法如下: 其中, command 是处理列表的命令,每个命令有各自的 other_args ,具体

    2024年02月11日
    浏览(47)
  • cmake / CMAKE_INSTALL_PREFIX

    CMAKE_INSTALL_PREFIX 为 cmake 内置变量,用于指定 cmake 执行 install 目标时,安装的路径前缀。使用方法如下: 1、在执行 cmake 时指定 cmake -DCMAKE_INSTALL_PREFIX=你想要安装的路径 2、设置 CMAKE_INSTALL_PREFIX 变量 SET(CMAKE_INSTALL_PREFIX install_path) 要加在 PROJECT( project_name) 之后。 在设置完 inst

    2024年02月11日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包