在Ubuntu系统中应用x264库遇到的问题及解决办法

1、x264_encode.c:72:对‘x264_encoder_open_157’未定义的引用

首先感谢该博客提供的帮助:https://blog.csdn.net/CrystalShaw/article/details/88822736

该问题由于x264库没有及时更新导致,为什么需要更新呢?因为该工程原本在IMX6ULL上进行交叉编译的,应用的库是较早版本的x264库,对应的文件都比较旧,然而在Ubuntu系统中,我下载了最新的x264库,原本的旧版本x264.h头文件对于新版本的libx264.a来说,就落后了,此时需要更新库需要的头文件。进入到下载的新版本的x264文件中打开x264.h,可以查看当前的版本号如下:原本工程中的版本号为:,两者需要匹配,用新版本x264.h替代旧版本,重新编译,问题解决

2、在函数‘x264_8_opencl_load_library’中:

opencl.c:(.text+0xbb):对‘dlopen’未定义的引用
opencl.c:(.text+0xd4):对‘dlsym’未定义的引用
opencl.c:(.text+0xee):对‘dlsym’未定义的引用
opencl.c:(.text+0x108):对‘dlsym’未定义的引用
opencl.c:(.text+0x122):对‘dlsym’未定义的引用
opencl.c:(.text+0x13c):对‘dlsym’未定义的引用

对于“XXX”未定义引用的问题,一般是缺少相应函数的具体实现,该问题是缺少了dlopendlsymdlerrordlclose这些函数的实现,这几个函数是用于加载动态链接库的,编译的时候需要添加-ldl来使用dl库,不过需要注意的是,gcc编译的时候,存在各个文件依赖顺序的问题,如果一个文件a依赖于文件b,那么编译的时候就需要a在b在后。对于该问题的具体描述,可以参照下面的博客,对该博主的分享表示感谢:https://www.cnblogs.com/oloroso/p/4688426.html

3、对‘pthread_create’未定义的引用

该问题与第二个问题相同,Makefile中加入“-lpthread”,注意依赖顺序,修改后的Makefile的库链接语句为:

困扰了几天的问题都与Makefile有关,自己也没有专门研究过,这次敲响了警钟,还需要继续努力,仅以此篇记录应用x264库时出现的相关问题,x264库的安装可以参考现有博客,资源很是丰富。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值