编译FCL库报错:recompile with -fPIC

article/2025/10/6 9:59:44

报错如下:

Make error relocation R_X86_64_32 against `.text’ can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libccd.a: error adding symbols: Bad value


仔细看一下, 可以发现, 是因为之前安装另一个库引起的, libccd, 因为FCL需要调用这个库, 而我们之前编译libccd的时候, 没有指定编译成PIC形式, 所以现在编译FCL是以动态库的形式, 所以有两种方法解决问题:

  1. 删除libccd,重新编译的时候打开PIC选项
  2. FCL编译成静态库, 也是我用的方法, 不想删了libccd重装

所以这里只展开讲第二种方法, 见谅
先进入fclbuild文件夹,没有就自己建
cd build
打开cmake-gui,没安装的话,用指令sudo apt install cmake-qt-gui安装
然后在设置里面,搜static,看到FCL_STATIC_LIBRARY选项,就打钩,然后先点界面左下角的configure,后点geneate, 然后就可以退出了, 界面如下图所示. 可以看到中间有一个FCL_STATIC_LIBRARY的选项,一开始是没有打钩的,这里我已经点了
FCL
退出cmake-gui后,就回到build文件夹,cmake一下,然后make
这样就成功了
fcl最后再说一句,第一种方法是使FCL可以生成动态库,第二种方法是生成静态库,静态库就是每次编译完会把库文件一并写入程序中,之和的库文件就不需要了,但是弊端是会使程序很冗余。而动态库不会一并写入程序中,而是使用指针的方法,启动程序的时候调用,这样就比较灵活了,弊端就是,依赖外部环境,如果换个PC端,可能就要重新配环境了。自己衡量吧,兄dei们。

有不正确的地方,欢迎指出,多多交流学习。

References:

  1. https://github.com/flexible-collision-library/fcl/issues/226
  2. https://github.com/flexible-collision-library/fcl

http://chatgpt.dhexx.cn/article/VwyQ7Ylx.shtml

相关文章

Matlab2019b.Warning: The CUDA driver must recompile the GPU librariesbecause your device is more

项目场景: 内容报错: Warning: The CUDA driver must recompile the GPU librariesbecause your device is more recent than the libraries. Recompiling can take several minutes. 使用环境:1. Matlab2019b 2.系统Win11,Win1…

cmake报错:xxx can not be used when making a shared object; recompile with -fPIC

一、问题描述 最近在cmake一个项目时,链接库时报错,如下图: 通过报错信息看出,需要加上编译选项-fPIC,定位到ntl库。猜测是在编译ntl库时出错。 二、解决方案 ntl库的文件结构如下: 进入src目录下&…

【ffmpeg编译问题】recompile with -fPIC /usr/bin/ld: 最后的链结失败: 错误的值

安装流程参考 最新版本ffmpeg6.0源码安装vscode开发环境搭建! 1、配置 下好ffmpeg后,设置配置 sudo ./configure --prefix/usr/local/ffmpeg --enable-gpl --enable-shared --enable-version3 --enable-nonfree --enable-pthreads --enable-libx264 --…

idea jrebel recompile总是编译整个项目问题处理(如何快速编译)

问题:idea里面安装了jrebel,布置好热部署之后,每次recompile单个java文件或者前端文件时总是会编译整个项目,每次recompile非常的慢。这里的情况是gradle下的项目,下面是解决方式(亲测mac,windows有效)1:设…

BLESS的安装---一个问题recompile with -fPIC的解决

BLESS安装方法 首先新建一个目录 mkdir bless_c cd bless_c然后把源码克隆到本地 git clone https://github.com/thirtyeggs/bless.git进入目录,执行编译 cd bless make -j8编译报错 mpicxx kmc/kmc_api/kmc_file.o kmc/kmc_api/kmer_api.o kmc/kmc_api/mmer.o murmurhash…

gcc报错 can not be used when making a shared object; recompile with -fPIC

问题1:gcc报错 can not be used when making a shared object; recompile with -fPIC -fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code), 则产生的代码中,没有绝对地址,全…

WRF——hdf编译报错 recompile with -fPIC

错误: 解决办法:重新编译zlib relocation R_X86_64_32 against .rodata can not be used when making a shared object; recompile with -fPIC 解决方案:以64位的方式重新编译zlib cd zlib CFLAGS"-fPIC" ./configure make …

mysql 存储过程 compile_SQLSERVER临时表导致存储过程重编译(recompile)的一些探讨_MySQL...

SQLSERVER为了确保返回正确的值,或者处于性能上的顾虑,有意不重用缓存在内存里的执行计划,而重新编译执行计划的这种行为,被称为重编译(recompile)。那么引发存储过程重编译的条件有哪一些呢?下面罗列了一些导致重编译…

mysql 存储过程 compile_SQL SERVER 临时表导致存储过程重编译(recompile)的一些探讨_MySQL...

SQLSERVER为了确保返回正确的值,或者处于性能上的顾虑,有意不重用缓存在内存里的执行计划,而重新编译执行计划的这种行为,被称为重编译(recompile)。那么引发存储过程重编译的条件有哪一些呢?下面罗列了一些导致重编译…

Qt recompile with -fPIC

Qt编译时提示: relocation R_X86_64_32 against ‘.rodata’ can not be used when making a PIE object: recompile with fPIC 于是百度, 找了很久找到一篇能够解决我这问题的帖子 在这里面的参考文档中提到,从Ubuntu16.10版本开始默认启用P…

IDEA安装JRebel实现热部署,自动reload和recompile

利用JRebel插件实现代码及时编译功能,帮助我们在开发过程中节省项目重启时间,提高开发效率。JRebel插件实现及时编译,帮助我们在开发过程中节省项目重启时间,提高开发效率。 一、安装 插件安装流程: 1.下载安装JRebel插…

WITH RECOMPILE和OPTION(RECOMPILE)区别

在考虑重编译T-SQL(或者存储过程)的时候,有两种方式可以实现强制重编译(前提是忽略导致重编译的其他因素的情况下,比如重建索引,更新统计信息等等),  一是基于WITH RECOMPILE的存储过程级别重编译,另外一种是基于OPTION(RECOMPILE)的语句级重编译。  之前了解的比较…

内网穿透群晖NAS:实现无公网IP远程访问群晖 2/2

系列文章 内网穿透群晖NAS:免费安装cpolar群晖套件 1/2内网穿透群晖NAS:实现无公网IP远程访问群晖 2/2 上一篇 内网穿透群晖NAS:免费安装cpolar群晖套件 1/2 在上一篇介绍里,我们在群晖系统中成功安装了图形化界面的cpolar&#…

群晖设置公网ipv6方式域名解析访问

1.环境说明 上网:电信光猫tplink路由器(电信送的) 群晖:DSM 7.1.1-42962 Update 2 域名服务商:腾讯云 2.光猫设置 2.1 获取光猫超级用户密码 拨打电信10000号 2.2 修改光猫为桥接模式 略 3.路由器设置 3.1 路由器拨号上网…

群晖 阿里云ddns_群晖QuickConnect功能详解

先来了解下什么是QuickConnect,这是群晖的一个远程访问功能, 有这个功能直接注册一个QuickConnect账号就可以远程访问了, 这样就不需要你的宽带是否有公网ip, 也不需要配置路由器端口映射, 就可以轻松的实现外网访问。 上图的 http://quickconnect.to/vip 外网在电脑浏览器…

IPv6/IPv4 + aliddns 实现黑群晖外网控制和访问

前言 一直想弄台黑群NAS,但因为穷!一直没入,一直用的是玩客云,但玩客云满足不了我的需求,但正好搭上蜗牛星际的车! J19004G内存16G固态4盘位千兆网口才380元,性价比是真的高,再买两…

群晖NAS配置DNSPodDDNS实现外网访问(仅适用于阿里云域名)

创作立场声明:本文只是单纯的经验分享,没有任何恰饭行为!转载前请联系作者授权,并附上此文章链接! 前言 本文将详解如何使用群晖NAS自带的DDNS功能来实现腾讯云DNSPod动态域名解析。 设置你的域名DNS服务器到DNSPod 登录阿里云控制台&…

【宇麦科技】腾xun云登场,群晖NAS自定义域名教程来啦~

如今网盘的使用成本越来越高,更多的人选择搭建自己的家庭 NAS 服务器。 NAS 可以用来做大容量存储、文件备份、文件下载、相册同步,甚至可以搭建网站、搭建自己的笔记以及邮件服务。 NAS 一般都安装在家里,那么出门在外应该如何远程访问家里的…

群晖NAS的公网、NAT、DDNS、证书等配置一

一、群辉NAS应用场景 你是否有过这样的需求? 1. 远程办公 日常的工作资料太多太杂乱,换个电脑根本没法工作?团队间资料共享太麻烦?Drive套件这个远程办公神器都能解决。 我的文件相当于远程的“我的文档”,“团队文件”是可以与团队成员共享。在PC端和手机端都可以方便…

群晖NAS教程(二十一)、利用Docker安装DDNS动态域名解析,自动更新域名解析到公网IP(支持阿里云、腾讯云dnspod、Cloudflare、华为云)

群晖NAS教程(二十一)、利用Docker安装DDNS动态域名解析,自动更新域名解析到公网IP(支持阿里云、腾讯云dnspod、Cloudflare、华为云) 为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客http://www.huerpu.cc:7000 一、下载镜像与配置启动参数 在群…