Cross-compile on windows

windows 交叉编译

Architecture ARM – Linux:

Linux tegra-ubuntu 4.4.38-tegra aarch64 :  gcc 5.4.0 : cmake 3.5.1

Unix makefile 编译通过, 包括编译选项 -march=armv8-a  和 -march=armv8-a+crypto -mcpu=cortex-a57+crypto

Architecture X86_64 – Win10:

MinGW+ Msys + VS2017:

windows 下 cmake 生成 visual studio 2017 的解决方案,然后修改项目引用路径,手动添加依赖库configparser,修改linux下的引用文件……

1.Install the MinGW to enable CMAKE works.

2.Run CMAKE to generate cmake files like vs solution related files.

3.Modify the project configuration: remove   /Wl,–no-as-needed compilation option

4.Manually add config_parser.h and config_parser.cpp

5.Modify the source file, add condition compilation macro, replace linux header file and implement used linux system function like realpath(), getpid()… etc.

MinGW + MSYS + GCC:

安装的时候要选择posix 线程模型以支持C++11 thread: threads-posix发行版将使用 posix API并允许使用 std:: thread,threads-win32将使用 win32api,并禁用标准的std::thread 部分

【 mingw-w64线程模型:posix vs win32(posix允许使用c++11的std:: thread,但要带一个winpthreads,可能需要额外dll) 】

https://stackoverflow.com/questions/17242516/mingw-w64-threads-posix-vs-win32

最终MinGW下的编译方式成功,但仍更改了小部分代码,去掉了syscall() 的引用,增加 了realpath的win下的实现

CygWin:

操作同linux,直接git clone   cmake    make就搞定了。。。

About gradle:

windows上要是的gradle能自动解析并下载依赖包,需要安装jdk并添加pah环境变量,再运行gradlew.bat,但要注意改build.properties文件的引用库平台以及所下载的依赖库版本,显然linux下的库在windows下无法引用。

当出现执行gradle,FAILIURE:Build failed with an exception,检查gradle和jdk版本匹配问题

 

0

发表评论