红联Linux门户
Linux帮助

Ubuntu server 14.04交叉编译Unicorn-engine

发布时间:2016-05-21 15:07:57来源:linux网站作者:简单地快乐

编译的过程基本上按照的是unicorn/COMPILE-WINDOWS.md描述的进行编译的,不过还是改了一些地方。在Ubuntu 14.04 server上交叉编译Unicorn给windows使用。


第一步就是按照Mingw64了,Mingw64既支持编译windows 32位的程序,也支持编译windows 64位的程序。Sudo apt-get install mingw-w64

按照官方文档的描述,下面直接安装Mingw-glib2,

sudo dpkg –i –force-depends mingw64-x86-glib2_2.31.0_all.deb


然后就尝试./make.sh cross-win32进行编译。发现并不能成功,提示缺少其他依赖。缺少什么就安装什么,像pkg-config,libtool,zlib等,前两个好安装,直接apt-get install就能安装,但是第三个有问题了,利用sudo apt-get install zlib1g-dev 安装了zlib后,在本地尝试编译了:

#include <zlib.h>

int main(void) { zlibVersion(); return 0; }


并且可以成功运行,但是编译unicorn的时候,还是提示找不到zlib.h,这个时候意识到我现在是交叉编译,需要windows版本的zlib,所以就下载源码,对zlib进行交叉编译。在StackOverflow上找到了一个解决方案,成功交叉编译zlib。

http://stackoverflow.com/questions/21322707/zlib-header-not-found-when-cross-compiling-with-mingw

Ubuntu server 14.04交叉编译Unicorn-engine


继续编译Unicorn,发现还是报错,"/usr/bin/i686-w64-mingw32-ld: cannot find -lglib-2.0",自己不是已经安装了mingw64-x86-glib2_2.31.0_all.deb,为啥还提示找不到libglib-2.0?我直接find / -name libglib*,发现系统上是有libglib-2.0的库的。

Ubuntu server 14.04交叉编译Unicorn-engine

我直接把这两个路径加到了make.sh的库搜索路径里,如下:

Ubuntu server 14.04交叉编译Unicorn-engine

继续编译Unicorn,成功编译!


本文永久更新地址:http://www.linuxdiyf.com/linux/20826.html