交叉编译64位
1. Ubuntu下使用mingw-w64交叉编译ffmpeg
网上大部分编译windows版ffmpeg的教程都是基于msys+mingw的,完全运行在windows上。由于msys2的性能实在是太糟糕了,编译速度太感人,因此决定研究linux下使用mingw-w64交叉编译
先是安装ubuntu版的mingw-w64
sudo apt install mingw-w64
然后在configure ffmpeg的时候,在正常的配置项之后加上。
--arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32-
上面是32位库编译的配置,64位的如下
--arch=x86_64 --target-os=mingw32 --cross-prefix=x86_64-w64-mingw32-
而且最好使用动态库,静态库还需要链接一大堆mingw的库实现,而且还可能链接失败。但这样编译出来的动态库,还需要依赖 libgcc_s_sjlj-1.dll。如果要移除这个依赖,configure的时候还要加上 --extra-ldflags='-static-libgcc'
2. 在Ubuntu下,安装arm-linux-gcc交叉编译器,环境变量也都设置好了,运行arm-linux-gcc 提示未找到命令
先找一下有无arm-linux-gcc这个文件:
find / -xdev -name arm-linux-gcc
再看一下有无执行权限:
ls -l arm-linux-gcc
再用绝对路径执行一下看看:
/path/to/arm-linux-gcc -v
3. 64位linux下的GCC如何编译出一个32位可执行程序
理论上安装支持环境,之后64位的gcc编译成32位程序,就加-m32参数即可。
当然还一个办法是装个32位的gcc。
另外,交叉编译也适用于x86架构。
不过这么编译经常会出现各种问题,所以编译32位的程序,最好还是用32位系统。
不一定重装,用chroot和setarch命令配合即可弄出一个32位的子系统。
4. Ubuntu14.04 用arm-linux-gcc 4.4.3 配置交叉编译环境问题
安装步骤
1、将压缩包arm-linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了
5. linux与windows交叉编译
这篇文章主要说明的是将linux上编译的程序放到windows上运行。
首先,我的主机与虚拟机都是64位的,虚拟机为ubuntu。
编写一个简单的测试程序:
然后将虚拟机做如下设置:
使用如下方法将exe拷贝到windows上:
将程序拷贝到windows上。
按照windows上的程序执行方法,执行该hello.exe即可。
6. 交叉编译armlinuxgcc wchar.h: No such file or directory 不仅如此所有的C语言头文件都找不到
我的也是这个问题 交叉编译环境搭建后 arm-linux-gcc -v 显示
No such file or directory 使用which命令可以找到,环境变量没有问题,更详细的描述问题就是which找到的命令所在的目录下的所有命令都是同样的问题。
果然问题的解决点就在我用的是64位系统,使用 sudo apt-get install ia32-libs命令就可以解决
希望对你有所帮助!