ubuntu 14.04 编译opencv-3.4.2 报错: /usr/bin/ld: /usr/local/lib/libavformat.a(allformats.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC

复制代码
ubuntu 14.04 编译opencv-3.4.2 报错解决:

错误信息:
    /usr/bin/ld: /usr/local/lib/libavformat.a(allformats.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC
    /usr/local/lib/libavformat.a: error adding symbols: 错误的值
    collect2: error: ld returned 1 exit status
    make[2]: *** [lib/libopencv_videoio.so.3.4.2] 错误 1
    make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] 错误 2
    make[1]: *** 正在等待未完成的任务....

原因:
    ffmpeg未安装或配置不对

    
解决办法:
    1 下载ffmpeg: https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2
     2 编译ffmpeg
        2.1 安装依赖项
            $ sudo apt-get install yasm 
            $ sudo apt-get install libx264-dev 
            $ sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev libvorbis-dev libxvidcore-dev  libxext-dev libxfixes-dev
        2.2 编译
            $ cd ffmpeg-4.2.1/
            $ # (后面的–enable-nonfree –enable-pic –enable-shared很重要)
            $ ./configure --prefix=/usr/local/ffmpeg --enable-nonfree --enable-pic --enable-shared
            $ make -j
            $ make install
        2.3 修改/etc/profile 或 ~/.bashrc
            $ vim /etc/profile
            $ export FFMPEG_HOME=/usr/local/ffmpeg 
            $ export PATH=$FFMPEG_HOME/bin:$PATH
        2.4 重新导入环境变量
            $ source /etc/profile 或 source ~/.bashrc
        2.5 测试ffmpeg
            $ ffmpeg --version
            输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
lpadas1@lpadas1:~$ ffmpeg
ffmpeg version 4.2.git Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.4)
  configuration: --prefix=/usr/local/ffmpeg --enable-nonfree --enable-pic --enable-shared
  libavutil      56. 36.101 / 56. 36.101
  libavcodec     58. 65.100 / 58. 65.100
  libavformat    58. 35.101 / 58. 35.101
  libavdevice    58.  9.101 / 58.  9.101
  libavfilter     7. 69.101 /  7. 69.101
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... 
 [必须包含这些才算成功] 

3 重新配置编译opencv
  $
tar xvf opencv-3.4.2.tar.gz
  $ cd opencv
-3.4.2/
  $
mkdir build $ cd build
  $ cmake
-D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release ..
  $
make -j
  $
make install
复制代码
posted @   dangxusheng  阅读(3491)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示