relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `ff_vp9_subpel_filters‘ which may bind external

news/2024/7/10 21:49:02 标签: opencv, ffmpeg, 编译报错, 联合编译, R_AARCH64_ADR

项目场景:

opencv为4.4版本,ffmpeg为4.2.2版本,平台为TX2,编译安装包含CUDA的opencv版本,并把ffmpeg联合编译进去。


问题描述

报错详细信息如下:

relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `ff_vp9_subpel_filters' which may bind externally can not be used when making a shared object; recompile with -fPIC


 

原因分析:

看报错像是变量定义有冲突,有一个变量定义了全局变量,导致定义冲突。于是编译时候把ffmpeg去掉了,不把他编译进去,再重新编译opencv,果然报错消失了。当然这只是解决问题的其中一个方法,但我想把ffmpeg编译进去,又想让报错消失,于是从ffmpeg的编译下手,ffmpeg的编译方法可以参考我的文章《opencv联合编译ffmpeg》,在编译ffmpeg前同样需要配置编译选项,正常情况下都是默认配置项,直接运行./configure命令即可,但这个地方报错了,必然需要对选项进行一些调整。那如何调整呢,网上搜了一些答案,和这个报错很相似,于是死马当活马医试了一把,参考文章《ffmpeg使用fPIC静态库》,居然通过了,就把解决方法贴出来给大家参考下。


解决方案:

在ffmepg执行配置命令时,加上一个配置选项,如下

./configure --enable-shared

如此配置完后编译安装的ffmpeg编译进opencv时就不再产生上面的冲突报错了。


http://www.niftyadmin.cn/n/1784488.html

相关文章

Membership专题学习

(一) Membership数据表结构详细解释昨天收到《C#2005 &.NET 3.0高级编程(第5版)》,非常厚,有1500多页,分上下两册,里面的东西讲得非常详细,这本书对我而言具有非常重…

darknet编译选项之OPENMP

源码路径:YOLO: Real-Time Object Detection 编译文件Makefile文件的第四行OPENMP选项,顾名思义是对openmp多线程运行的编译,使用OpenMP支持构建,通过使用多核CPU来加速Yolo,咋一看是用在CPU推理时多线程加速用的&…

IBM:电信运营商向云服务转型具备五大优势

3月17日消息,在“2011中国绿色通信大会”上,IBM大中华区云计算中心构架师陈治文表示,我们通过引入云计算技术,IBM可以为电信运营商提供“多快好省”的云平台。 目前,电信运营商正向云服务提供商转型,在这方面运营商拥有…

ASP.NET中上传下载文件

ASP.NET中上传下载文件 //检查上传文件不为空if(File1.PostedFile!null){stringnamFile1.PostedFile.FileName;//取得文件名(抱括路径)里最后一个"."的索引intinam.LastIndexOf(".");//取得文件扩展名stringnewextnam.Substring(i);//这里我自动根据日期和…

c++面向对象的程序设计(一)

大学时期学的c语言,感觉好难啊,写的程序最大也都是几百行的代码,在多感觉就显得费劲了,出现变量重定义,编译等各种错误。自从接触c后,就不想再用c语言了,c基本能实现c的所有功能,而且…

使用XCACLS修改文件和文件夹权限

使用XCACLS.EXE命令可以非常方便的修改文件和文件夹权限,特别适合批量处理。 XCACLS.EXE 1. 用途XCACLS.EXE命令允许你从命令行设置像在文件管理器或资源管理器中容易理解的所有文件系统安全选项。在出现XCACLS以前,从Windows NT命令行设置文件和目录访问…

C#高效编程话题集2(每期10话题)

第一期话题在:C#高效编程话题集1(每期10话题) C#快速成长团队第二期话题来到。欢迎进入C#快速成长团队进行讨论。 1:确保集合的线程安全 如果使用.net4.0,有新的线程安全集合类新的 System.Collections.Concurrent 命名…

c++应用程序内存泄露检测

前言:c及c这种底层的编程语言,在获得更多程序控制自由度的同时,也承担了更多内存泄露的风险,有些同学想说,内存泄露只要看下c的应用程序在运行时内存有没有一直增加不就行了吗,windows和linux系统都有现场的…