PS:前提用VS2017需将ARM64相关的组件全部安装了
截图不全 可以上下拉动相关的全部安装了。
1.curl
因为没有适用于VS2017的arm64工具命令行,用x86命令行会报错“模块计算机类型“x86”与目标计算机类型“ARM”冲突。
参考
https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=msvc-160&viewFallbackFrom=vs-2019
发现了以下工具
用everything搜索
可以找到使用64位x64本机交叉工具来构建arm64。
在普通命令行cmd中执行:
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsamd64_arm64.bat"
就有了可以生成arm64发布件的环境了。
进入curl目录中的winbuild目录,执行nmake,把MACHINE改成arm64就可以生成arm64的curl发布件了。
nmake /f Makefile.vc mode=static VC=15 MACHINE=arm64 DEBUG=yes RTLIBCFG=static
nmake /f Makefile.vc clean
清空
PS:为什么要设置RTLIBCFG,如果本项目和链接的lib使用的运行库(属性—C/C++—代码生成—运行库)不一样的话,链接会报错
LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library 以及一堆符号未定义。
2.openssl
同第一步一样,用cmd执行
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsamd64_arm64.bat"
然后下载perl\nasm,并配置环境变量。
生成release:
1.用perl生成makefile:
perl configure no-asm no-shared VC-WIN64-ARM --prefix="C:\Users\Administrator\Desktop\openssl-1.1.1g\output\Release"
2.nmake
编译
3.nmake install
安装到前面指定的目录
4.nmake clean
清空准备安装debug
生成debug:
除第一步不一样其他均一样,
perl命令为:
perl configure no-asm no-shared debug-VC-WIN64-ARM --prefix="C:\Users\Administrator\Desktop\openssl-1.1.1g\output\Debug"
3.zlib直接用现成的生成的:
https://github.com/kiyolee/zlib-win-build