在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库的安装可以参考现有博客,资源很是丰富。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译FFmpeg: 1.安装依赖: sudo apt-get update sudo apt-get install build-essential git-core checkinstall yasm texi2html libvorbis-dev libx11-dev libxfixes-dev zlib1g-dev pkg-config netcat libncurses5-dev libncursesw5-dev libsdl-image1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvpx-dev libxext-dev libxfixes-dev libxl2tpd-dev libxrandr-dev libxrender-dev libxvidcore-dev libssl-dev libsoxr-dev libopus-dev 2.下载FFmpeg源代码: git clone https://github.com/FFmpeg/FFmpeg.git 3.编译FFmpeg: cd FFmpeg ./configure --prefix=/usr/local --enable-shared --enable-gpl --enable-libx264 --enable-libvorbis --enable-libtheora --enable-libmp3lame --enable-libopus --enable-libvpx --enable-version3 --enable-nonfree --disable-stripping make -j4 sudo checkinstall 编译libx264: 1.下载libx264源代码: git clone https://code.videolan.org/videolan/x264.git 2.编译libx264: cd x264 ./configure --prefix=/usr/local --enable-shared make -j4 sudo checkinstall 编译PJSIP: 1.下载PJSIP源代码: svn checkout http://svn.pjsip.org/repos/pjproject/trunk pjproject 2.编译PJSIP: cd pjproject ./configure --prefix=/usr/local --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr make dep make -j4 sudo checkinstall 注意:在编译PJSIP时,如果遇到错误提示找不到libssl-dev和libsoxr-dev,可以使用以下命令安装: sudo apt-get install libssl-dev libsoxr-dev 编译完成后,即可使用VoIP应用程序了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值