声明 : 此文档只做学习交流使用,请勿用作其他商业用途
author : 朝阳_tony
E-mail : linzhaolover@163.com
Create Date: 2015-4-13 11:10:37 Monday
Last Change: 2015-4-13 11:22:34 Monday
转载请注明出处:http://blog.csdn.net/linzhaolover

摘要

最近在两台ubuntu的虚拟机里做测试,目前发现ffmpeg在ubuntu14.10带的gcc4.9.1编译好有问题,为了验证问题所在,需要更换不同版本的gcc

1. 通用做法

通用的办法就是直接下载源码,然后自己手动编译,但会有隐含的问题,还有配置对应的编译环境,才可以编译通过

apt-get source gcc-4.8
cd gcc-4.8
./configure
make
make install

2. 官方下载deb包方法

直接下载官方提供的deb包,这省时省力,我喜欢,主要是我目前的情况只要验证两个版本是对与错,不需要深度刨息源码

apt-get download gcc

3. gcc-4.9降级到gcc-4.8

我有两台机器,一台是ubuntu14.04 ,一台是ubuntu 14.10,
14.04 gcc 版本是4.8.2

apt-get download  \
    cpp-4.8 \
    g++-4.8 \
    gcc-4.8 \
    gcc-4.8-base \
    libgcc-4.8-dev \
    libstdc++-4.8-dev
# will download 
cpp-4.8_4.8.2-19ubuntu1_ppc64el.deb
g++-4.8_4.8.2-19ubuntu1_ppc64el.deb
gcc-4.8_4.8.2-19ubuntu1_ppc64el.deb
gcc-4.8-base_4.8.2-19ubuntu1_ppc64el.deb
libgcc-4.8-dev_4.8.2-19ubuntu1_ppc64el.deb
libstdc++-4.8-dev_4.8.2-19ubuntu1_ppc64el.deb

# install 
dpkg -i *.deb

设置软链接
gcc 默认到装到/usr/bin目录下

ln -f -s /usr/bin/gcc-4.8  /usr/bin/gcc
ln -f -s /usr/bin/gcc-ar-4.8 /usr/bin/gcc-ar
ln -f -s /usr/bin/gcc-nm-4.8 /usr/bin/gcc-nm
ln -f -s /usr/bin/gcc-ranlib-4.8 /usr/bin/gcc-ranlib
ln -f -s /usr/bin/g++-4.8  /usr/bin/g++

4. gcc-4.8升级到gcc-4.9

apt-get download  \
        binutils \
        binutils-dev \
        cpp-4.9 \
        g++-4.9 \
        gcc-4.9 \
        gcc-4.9-base \
        libgcc-4.9-dev \
        libstdc++-4.9-dev

dpkg -i *.deb

ln -f -s /usr/bin/gcc-4.9  /usr/bin/gcc
ln -f -s /usr/bin/gcc-ar-4.9 /usr/bin/gcc-ar
ln -f -s /usr/bin/gcc-nm-4.9 /usr/bin/gcc-nm
ln -f -s /usr/bin/gcc-ranlib-4.9 /usr/bin/gcc-ranlib
ln -f -s /usr/bin/g++-4.9  /usr/bin/g++

总结:

bug虐我千百遍,我待bug如初恋

后记:

这是我们在power8 平台测试ffmpeg时遇到的错误,后来发现是gcc-4.8的bug,gcc官方已经在4.9.1中fix了这个bug,我也尽快在ffmpeg用fix了相关bug。

生活在继续,bug解不尽,春风吹又生。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐