您的位置:首页 > 运维架构 > Linux

ffmpeg 交叉编译(编译工具是 arm-linux-gnueabihf-gcc)

2017-03-15 18:40 337 查看
    之前编译linux的版本,通过了。交叉编译花了自己很长时间,而且,现在的编译也是有错误的。不过,我需要的是ffmpeg的静态库,幸好静态库编译成功,不然的话,又要花好长时间来来解决问题了。

    第一步,先修改配置文件,configure文件中的编译工具。

    cc_default="arm-linux-gnueabihf-gcc"

    cxx_default="arm-linux-gnueabihf-g++"

    host_cc_default="arm-linux-gnueabihf-gcc"

    第二步,去配置生成makefile。

    命令行:./configure --enable-shared --enable-zlib --enable-cross-compile --arch=arm --target-os=linux

    这样,编译可以进行了,之后,生成了自己需要的静态库文件。不过最后的地方,出现了错误。自己多次进行make,居然过去了错误的地方,但是还是有错误的。make install的时候,出现了小问题。不过自己需要的文件已经生成了。

    注:我发现一个问题,我通过ld命令来查看编译生成的静态库文件是没有问题的,但是查看动态库的时候,却是文件格式错误,自己同时测试过好几个文件才发现的,对于这个,不知道是什么地方出错了,还是自己对知识的不了解,等到测试程序的时候再说吧,下班咯!

ps:2017.3.29

现在自己已经修改好了arm版本,无需修改configure文件。

命令行:./configure --enable-shared --enable-zlib --enable-cross-compile --arch=arm --target-os=linux --disable-stripping  --cc=arm-linux-gnueabihf-gcc --prefix=path(指定要输出的路径)

编译的时候,出现如下错误,是关于编译工具的。

/ti-processor-sdk-linux-rt-am57xx-evm-02.00.02.11/linux-devkit/sysroots/cortexa15hf-vfp-neon-linux-gnueabi/usr/include/gnu/stubs.h:7:29: fatal     error: gnu/stubs-soft.h: 没有那个文件或目录:# include <gnu/stubs-soft.h>

修改方法:打开stubs-soft.h文件,注释掉# include <gnu/stubs-soft.h>即可。

这里我要说一句:遇到问代码问题,第一时间一定要看代码,不要先去百度。就上面那个编译失败的时候,我去百度,找了一圈,也没有解决问题。我去看源码,是一个条件编译,而且文件下并没有stubs-soft.h,我立马注释掉,编译通过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐