Ubuntu server 14.04 交叉编译Unicorn-engine

Ubuntu server 14.04 交叉编译Unicorn-engine

    编译的过程基本上按照的是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

    继续编译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的库的,

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

    继续编译Unicorn,成功编译!!!!

参考:

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

http://www.devinprogress.org/2014/02/how-to-cross-compile-libcurl-on-linux/

https://wiki.openttd.org/Cross-compiling_for_Windows#Compiling_zlib

http://linux.m2osw.com/cross_compiling_zlib

http://blog.csdn.net/npy_lp/article/details/6991704

原文地址:https://www.cnblogs.com/wangaohui/p/5512296.html