最近在linux下想使用开源库的静态库文件,结合自己开发的代码封装成一个动态库,会出现如下错误:

relocation R_X86_64_32 against `.text' can not be used when making a shared object; recompile with -fPIC

或者

relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC 

一、修改CMakeLists.txt文件,主要有以下几种修改方式:

1、

add_compile_options(-fPIC)

2、

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  -fpic")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -fpic")

3、

set(CMAKE_POSITION_INDEPENDENT_CODE ON)

上述三种方法,应该随便哪一种都是可以的。

二、参考网友评论,使用命令行方法

cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON ..

cmake时添加-fPIC编译选项相关推荐

  1. cmake中如何添加fPIC编译选项

    在编译动态链接库时,需要使用-fPIC(Position Independent Code)编译选项,因为动态链接库会在运行时加载到内存中,并与其他共享库一起链接,所以需要确保动态链接库中的代码可以被 ...

  2. 在CMake时添加-ldl等编译选项:TARGET_LINK_LIBRARIES

    SET(SRC_LIST src/main/cpp/AndroidInjectSo.csrc/main/cpp/myptrace.c) add_executable(AndroidInjectSo $ ...

  3. cmake中添加 -g编译选项

    在cmake 3.12之前,添加编译选项可以如下方式添加 add_definitions("-Wall -g") 添加了之后,就相当于在编译的时候加上了 -Wall -g选项 #没 ...

  4. coverage 覆盖多个测试文件时_奇技淫巧[2]:cmake中添加lcov代码覆盖测试

    奇技淫巧[2]:cmake中添加lcov代码覆盖测试 1 目的 为CMake工程的test添加lcov代码覆盖性测试 2 要点 添加lcov支持的方法应该有很多,比较方便的有: (1)利用脚本基于文件 ...

  5. 用Java Instrumentation 在类加载时添加记录

    用Java Instrumentation 在类加载时添加记录 发布者:xanadu0214   来源:网络转载   发布日期:2013年11月06日   Java学习交流群:471651004 在分 ...

  6. php图片写入带问号_php实现图片上传时添加文字和图片水印技巧

    本文实现的功能特别适用于一些商城和图片站中,分享了图片在上传时添加文字和图片水印的技巧,供大家参考,具体内容如下 1. water.class.php header('Content-Type:tex ...

  7. linux svn强制注释,svn强制提交时添加注释

    svn强制提交时添加注释 1.  需求 领导要求开发在提交代码时必须添加注释,经过查资料,实验,然后实现领导的要求. 2.  查看资料 参考svn文档,以及网上博客 通过查看资料,一步一步的实现脚本 ...

  8. 若依管理系统导出Excel时添加没有的列和关联码表显示中文进行导出

    场景 在使用若依后台管理系统时对于单表会自动生成导出相关的接口. 此时如果直接进行导出会导出相应的实体类中添加了 @Excel注解的属性. 自动生成导出接口示例: @GetMapping(" ...

  9. Winform中在使用VS+svn进行协同开发时添加引用时的相对路径和绝对路径的问题

    场景 使用Visual Studio 开发Winform程序,使用SVN进行项目版本管理. 在添加引用时,会出现在A电脑中添加了绝对路径的引用,在B电脑中就会出现找不到 并且将此引用标识为?的状态. ...

最新文章

  1. [JS]题解 | #岛屿数量#
  2. android访问java服务器_Android_post访问java服务器端
  3. jQuery选择器之层级选择器
  4. 我抓到bit哥了,嘿嘿嘿(5)
  5. 双向@OneToMany / @ManyToOne关联
  6. 筛法求素数c 语言,位筛法求素数,有段代码看不懂,有大佬可以来说一下
  7. 技术员联盟Win11 64位官方全新旗舰版镜像V2021.08
  8. 07.Qt程序的发布
  9. 罗永浩进军乐坛,参加《谁是宝藏歌手》,网友:来祸害音乐圈了?
  10. @property括号内属性讲解
  11. leetcode875.KokoEatingBananas
  12. 学习笔记之15道简单算法题
  13. Power Query M语言全部Text函数(字符串函数)分类,快速掌握
  14. 论文解读 | 百度 ERNIE: Enhanced Representation through Knowledge Integration
  15. 痱子和湿疹的区别在哪里?
  16. csgo怎么一直连接服务器失败,CSGO提示连接到官方任意服务器失败怎么办?
  17. 2010国家节假日安排
  18. 判断点P是否在三角形ABC内
  19. Dining POJ - 3281 (网络流)
  20. ShaderJoy —— “水面波纹消散” 的实现 【GLSL】

热门文章

  1. 什么是UML(UML总结)
  2. 微型计算机中常见到的Ega.VGA等是指,大学计算机基础选择题汇总
  3. 微信小游戏 缓存目录
  4. app 自动化 打开app (二)
  5. linux中永久别名 mac,mac 设置 ll 等alias 并永久生效
  6. Hash的简介与hashlib模块的使用、模拟撞库与密码加盐
  7. H.264 H.265 数据量及存储量计算
  8. idea 出现中文乱码
  9. 转:(记录)C语言中的itoa()函数的用法解析
  10. CrowdHuman数据集转成VOC格式并训练模型