SDL中文论坛

标题: 编译boringssl [打印本页]

作者: ancientcc    时间: 2017-1-3 09:57
标题: 编译boringssl
本帖最后由 ancientcc 于 2020-12-24 19:46 编辑

boringssl源码树中的BUILDING.md专门有说如何编译,但它写的是用cmake。我们目的是要用IDE编译,即Windows下的Visual Studio,iOS下的XCode,Android下的NDK。

不管哪平台,编译boringssl需两部分文件,一部分从直接下载的源码包中就能得到,另一部分需要用configure生成。configure生成的又分若干汇编文件和err_data.c,好在至少Windows、iOS、Android,err_data.c内容是一样的。

为此要实现各平台在IDE下编译,终归是要解决两个问题:1)如何得到configure生成的文件,2)如何知道要编译哪些源文件。

Windows
需要预安装的应用

编译
运行CMake。
Where is the source code: 设置boringssl的源码树路径,像c:/ddksmaple/boringssl。
Where to build the binaries: 设置要生成的二进制文件存放路径,像c:/ddksmaple/boringssl/output。
(, 下载次数: 1790)
单击“Configure”,如果是Visual Studio 2015,选择Visual Studio 14 2015。如果出现不能找到Go,那在Value手动设置go.exe路径。
以上都已成功,单击“Generate”。

至此在指定的“output”目录下就会有BoringSSL.sln,打开它,编译。
一旦编译结束,“output”下就会生成那些扩展名是.asm汇编文件,以及err_data.c。根据生成的*.o,就能得出Windows平台要编译哪些源文件。
在windows,额外预定宏OPENSSL_NO_ASM(后面升级时或许可以先去掉,没问题就建议不要定义它)。定义该宏后是不是意味不需要编译那些*.asm了?——还没有确定答案,但至少不能编译bn-586.asm、co-586.asm,否则会出同一个函数有多个实现。

iOS
iOS不需要汇编文件,configure生成的就须要err_data.c,而这文件可直接从Windows复制。

Andorid
以下编译是在Mac OS X。
需要预安装的应用

安装好CMake后,双击CMake执行是图形界面,编译boringssl需要在命令行。在图形界面的CMake执行菜单命令,“Tools”---“How to Install For Command Line Use”,会弹出个窗口,告诉你如何把cmake融入命令行。如下图。
(, 下载次数: 1940)
运行“终端”,输入类似以下命令就可完成编译。
  1. $ PATH="/Applications/CMake.app/Contents/bin":"$PATH"
  2. $ cd boringssl
  3. $ mkdir build
  4. $ cd build
  5. $ cmake -DCMAKE_TOOLCHAIN_FILE=../third_party/android-cmake/android.toolchain.cmake -DANDROID_NDK=/Users/ancientcc/android-ndk-r13b -DANDROID_NATIVE_API_LEVEL=18 -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI="armeabi-v7a with NEON" ..
  6. $ cmake --build .
复制代码
<boringssl>/third_party/android-cmake/README.md有关于cmake命令中涉及到的几个宏的详细说明,这里再补充几点。






欢迎光临 SDL中文论坛 (http://www.libsdl.cn/bbs/) Powered by Discuz! X3.3