

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# CMake 用于构建 适用于 C\$1\$1 的 AWS SDK
<a name="cmake-params"></a>

使用本节中列出的[CMake](https://cmake.org/)参数来自定义 SDK 的构建方式。

您可以使用 CMake GUI 工具或命令行使用 *-D* 来设置这些选项。 例如：

```
cmake -DENABLE_UNITY_BUILD=ON -DREGENERATE_CLIENTS=1
```

## 一般 CMake 变量和选项
<a name="cmake-general-options"></a>

以下是影响 SDK 源代码构建过程的常规 **`cmake`** 变量和选项。

**注意**  
在为适用于 C\$1\$1 的 SDK 本身构建 SDK 源代码时，请使用这些参数。

**Topics**
+ [ADD\$1CUSTOM\$1CLIENTS](#cmake-add-custom-clients)
+ [AUTORUN\$1UNIT\$1TESTS](#cmake-AUTORUN_UNIT_TESTS)
+ [AWS\$1AUTORUN\$1ld\$1Library\$1Path](#cmake-AWS_AUTORUN_LD_LIBRARY_PATH)
+ [AWS\$1SDK\$1WARNINGS\$1ARE\$1ERRORS](#cmake-AWS_SDK_WARNINGS_ARE_ERRORS)
+ [AWS\$1USE\$1CRYPTO\$1SHARED\$1LIBS](#cmake-use-crypto)
+ [AWS\$1TEST\$1区域](#cmake-AWS_TEST_REGION)
+ [BUILD\$1BENCHMARKS](#cmake-BUILD_BENCHMARKS)
+ [BUILD\$1DEPS](#cmake-BUILD_DEPS)
+ [BUILD\$1ONLY](#cmake-build-only)
+ [BUILD\$1OPTEL](#cmake-BUILD_OPTEL)
+ [BUILD\$1SHARED\$1LIBS](#cmake-build-shared-libs)
+ [BYPASS\$1DEFAULT\$1PROXY](#cmake-BYPASS_DEFAULT_PROXY)
+ [CPP\$1STANDARD](#cmake-cpp-standard)
+ [CURL\$1INCLUDE\$1DIR](#cmake-curl-include-dir)
+ [CURL\$1LIBRARY](#cmake-curl-library)
+ [CUSTOM\$1MEMORY\$1MANAGEMENT](#cmake-custom-memory-management)
+ [禁用\$1INTERNAL\$1 \$1 IMDSV1 CALLS](#cmake-DISABLE_INTERNAL_IMDSV1_CALLS)
+ [ENABLE\$1ADDRESS\$1SANITIZER](#cmake-ENABLE_ADDRESS_SANITIZER)
+ [ENABLE\$1CURL\$1LOGGING](#cmake-enable-curl-logging)
+ [ENABLE\$1HTTP\$1CLIENT\$1TESTING](#cmake-ENABLE_HTTP_CLIENT_TESTING)
+ [ENABLE\$1RTTI](#cmake-enable-rtti)
+ [ENABLE\$1TESTING](#cmake-enable-testing)
+ [ENABLE\$1UNITY\$1BUILD](#cmake-enable-unity-build)
+ [ENABLE\$1VIRTUAL\$1OPERATIONS](#cmake-virtual-op)
+ [ENABLE\$1ZLIB\$1REQUEST\$1COMPRESSION](#cmake-ENABLE_ZLIB_REQUEST_COMPRESSION)
+ [FORCE\$1CURL](#cmake-force-curl)
+ [FORCE\$1SHARED\$1CRT](#cmake-force-shared-crt)
+ [G](#cmake-g)
+ [MINIMIZE\$1SIZE](#cmake-minimize-size)
+ [NO\$1ENCRYPTION](#cmake-no-encryption)
+ [NO\$1HTTP\$1CLIENT](#cmake-no-http-client)
+ [REGENERATE\$1CLIENTS](#cmake-regenerate-clients)
+ [REGENERATE\$1DEFAULTS](#cmake-regenerate-defaults)
+ [SIMPLE\$1INSTALL](#cmake-simple-install)
+ [TARGET\$1ARCH](#cmake-target-arch)
+ [USE\$1CRT\$1HTTP\$1CLIENT](#cmake-USE_CRT_HTTP_CLIENT)
+ [USE\$1IXML\$1HTTP\$1REQUEST\$12](#cmake-USE_IXML_HTTP_REQUEST_2)
+ [USE\$1OPENSSL](#cmake-use-openssl)
+ [USE\$1TLS\$1V1\$12](#cmake-USE_TLS_V1_2)
+ [USE\$1TLS\$1V1\$13](#cmake-USE_TLS_V1_3)

### ADD\$1CUSTOM\$1CLIENTS
<a name="cmake-add-custom-clients"></a>

根据 API 定义构建任意客户端。将您的定义放在 `code-generation/api-definitions` 文件夹中，然后将此参数传递给 **`cmake`**。**`cmake`** 配置步骤会生成您的客户端，并将其作为子目录包含在构建版本中。这对于生成 C\$1\$1 客户端以使用您的某个 [API Gateway](https://aws.amazon.com/api-gateway) 服务特别有用。例如：

```
-DADD_CUSTOM_CLIENTS="serviceName=myCustomService,version=2015-12-21;serviceName=someOtherService,version=2015-08-15"
```

**注意**  
要使用 `ADD_CUSTOM_CLIENTS` 参数，您必须在 `PATH` 中安装 [Python 2.7](https://www.python.org/downloads/)、Java（[JDK 1.8\$1](http://openjdk.java.net/install/)）和 [Maven](https://maven.apache.org/)。

### AUTORUN\$1UNIT\$1TESTS
<a name="cmake-AUTORUN_UNIT_TESTS"></a>

如果为 `ON`，则在构建后自动运行单元测试。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### AWS\$1AUTORUN\$1ld\$1Library\$1Path
<a name="cmake-AWS_AUTORUN_LD_LIBRARY_PATH"></a>

要追加到 LD\$1LIBRARY\$1PATH 中的路径以供单元测试自动运行。 CMake如果覆盖的依赖项需要自定义运行时库，请设置此路径。

值  
 *字符串。*

默认  
 *不适用* 

### AWS\$1SDK\$1WARNINGS\$1ARE\$1ERRORS
<a name="cmake-AWS_SDK_WARNINGS_ARE_ERRORS"></a>

如果为 `ON`，则将编译器警告视为错误。如果在新的或不常见的编译器上发现错误，请尝试将此参数设置为 `OFF`。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### AWS\$1USE\$1CRYPTO\$1SHARED\$1LIBS
<a name="cmake-use-crypto"></a>

如果找到共享加密库，则强制 FindCrypto 使用该库。将此选项设置为 `OFF` 可使用[BUILD\$1SHARED\$1LIBS](#cmake-build-shared-libs)的设置。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### AWS\$1TEST\$1区域
<a name="cmake-AWS_TEST_REGION"></a>

 AWS 区域 用于集成测试的。

值  
 *字符串。*

默认  
 *不适用* 

### BUILD\$1BENCHMARKS
<a name="cmake-BUILD_BENCHMARKS"></a>

如果为 `ON`，则构建基准可执行文件。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### BUILD\$1DEPS
<a name="cmake-BUILD_DEPS"></a>

如果为 `ON`，则构建第三方依赖项。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### BUILD\$1ONLY
<a name="cmake-build-only"></a>

仅构建要使用的客户端。如果设置为高级别 SDK，例如 `aws-cpp-sdk-transfer`，*BUILD\$1ONLY* 会解析任何低级别客户端依赖项。它还会构建与您选择的项目相关的集成和单元测试（如果存在）。这是一个列表参数，其值由分号（`;`）字符分隔。例如：

```
-DBUILD_ONLY="s3;cognito-identity"
```

**注意**  
无论 *BUILD\$1ONLY* 参数的值如何设置，始终都会构建核心 SDK 模块 `aws-sdk-cpp-core`**。

### BUILD\$1OPTEL
<a name="cmake-BUILD_OPTEL"></a>

如果为 `ON`，则构建跟踪的开放遥测实现。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### BUILD\$1SHARED\$1LIBS
<a name="cmake-build-shared-libs"></a>

一个内置 CMake 选项，为了便于查看，此处重新公开。如果为 `ON`，它会构建共享库；否则，它只构建静态库。

**注意**  
要动态链接到 SDK，必须使用该 SDK 为所有构建目标定义 `USE_IMPORT_EXPORT` 符号。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### BYPASS\$1DEFAULT\$1PROXY
<a name="cmake-BYPASS_DEFAULT_PROXY"></a>

如果是`ON`，则在使用 IXml HttpRequest 2 时绕过计算机的默认代理设置。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### CPP\$1STANDARD
<a name="cmake-cpp-standard"></a>

指定用于 C\$1\$1 14 和 17 代码库的自定义 C\$1\$1 标准。

值  
 *11* \$1 *14* \$1 *17* 

默认  
 *11* 

### CURL\$1INCLUDE\$1DIR
<a name="cmake-curl-include-dir"></a>

curl 的路径包括包含 `libcurl` 标题的目录。

值  
 *所选 `include` 目录的字符串路径。例如，`D:/path/to/dir/with/curl/include`。*

默认  
 *不适用* 

### CURL\$1LIBRARY
<a name="cmake-curl-library"></a>

要链接的 curl 库文件的路径。该库可以是静态库或导入库，具体取决于您的应用程序需求。

值  
 *curl 库文件的字符串路径。例如，`D:/path/to/static/libcur/file/ie/libcurl.lib.a`。*

默认  
 *不适用* 

### CUSTOM\$1MEMORY\$1MANAGEMENT
<a name="cmake-custom-memory-management"></a>

要使用自定义内存管理器，请将该值设置为 `1`。您可以安装自定义分配器，以便所有 STL 类型均使用自定义分配接口。如果将该值设置为 `0`，则可能仍需要使用 STL 模板类型来帮助确保 Windows 上的 DLL 安全。

如果静态链接为 `ON`，则自定义内存管理默认为关闭**（`0`）。如果动态链接为 `ON`，则自定义内存管理默认为开启**（`1`），并避免交叉 DLL 分配和解除分配。

**注意**  
为防止出现链接器不匹配错误，必须在整个构建系统中使用相同的值（`0` 或 `1`）。

要安装自己的内存管理器来处理 SDK 的分配，必须为依赖该 SDK 的所有构建目标进行设置 `-DCUSTOM_MEMORY_MANAGEMENT` 和定义 `USE_AWS_MEMORY_MANAGEMENT`。

### 禁用\$1INTERNAL\$1 \$1 IMDSV1 CALLS
<a name="cmake-DISABLE_INTERNAL_IMDSV1_CALLS"></a>

如果为 `ON`，则不会对[实例元数据服务](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)的 V1 API 进行内部调用。如果是`OFF`，则如果 IMDSv2 呼叫失败， IMDSv1 则 IMDSv2 呼叫将回退为使用。有关 IMDSv1 和的更多信息 IMDSv2，请参阅 *Amazon EC2 用户指南*中的[使用实例元数据服务访问实例元数据](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### ENABLE\$1ADDRESS\$1SANITIZER
<a name="cmake-ENABLE_ADDRESS_SANITIZER"></a>

如果为 `ON`，则为 gcc 或 clang 开启地址清理器。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### ENABLE\$1CURL\$1LOGGING
<a name="cmake-enable-curl-logging"></a>

如果为 `ON`，则将 curl 的内部日志通过管道传输到 SDK 记录器。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### ENABLE\$1HTTP\$1CLIENT\$1TESTING
<a name="cmake-ENABLE_HTTP_CLIENT_TESTING"></a>

如果为 `ON`，则构建并运行相应的 HTTP 客户端测试套件。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### ENABLE\$1RTTI
<a name="cmake-enable-rtti"></a>

控制 SDK 是否在构建时启用运行时类型信息（RTTI）。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### ENABLE\$1TESTING
<a name="cmake-enable-testing"></a>

控制是否在 SDK 构建期间生成单元测试和集成测试项目。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### ENABLE\$1UNITY\$1BUILD
<a name="cmake-enable-unity-build"></a>

如果为 `ON`，则大多数 SDK 库都是作为单个生成的 `.cpp` 文件构建的。这可以显著减少静态库大小并加快编译速度。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### ENABLE\$1VIRTUAL\$1OPERATIONS
<a name="cmake-virtual-op"></a>

此参数通常与 `REGENERATE_CLIENTS` 配合使用以生成代码。

如果 `ENABLE_VIRTUAL_OPERATIONS` 为 `ON`，且 `REGENERATE_CLIENTS` 为 `ON`，则服务客户端中与操作相关的函数将被标记为 `virtual`。

如果 `ENABLE_VIRTUAL_OPERATIONS` 为 `OFF`，且 `REGENERATE_CLIENTS` 为 `ON`，则 `virtual` 不会添加到操作函数中，服务客户端类将被标记为 `final`。

如果 `ENABLE_VIRTUAL_OPERATIONS` 为 `OFF`，SDK 还将在编译时为 gcc 和 clang 添加 `-ffunction-sections` 和 `-fdata-sections` 编译器标志。

有关更多信息，请参阅上的[CMake 参数](https://github.com/aws/aws-sdk-cpp/blob/main/docs/CMake_Parameters.md#enable_virtual_operations) GitHub。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### ENABLE\$1ZLIB\$1REQUEST\$1COMPRESSION
<a name="cmake-ENABLE_ZLIB_REQUEST_COMPRESSION"></a>

对于支持它的服务，请求内容将被压缩。如果依赖项可用，则默认处于开启状态。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### FORCE\$1CURL
<a name="cmake-force-curl"></a>

仅适用于 Windows。如果为 `ON`，则强制使用 curl 客户端，而不是默认的 [WinHTTP](https://msdn.microsoft.com/en-us/library/windows/desktop/aa382925%28v=vs.85%29.aspx) 数据传输提供程序。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### FORCE\$1SHARED\$1CRT
<a name="cmake-force-shared-crt"></a>

如果为 `ON`，则 SDK 将**动态链接到 C 运行时；否则，它将使用 *BUILD\$1SHARED\$1LIBS* 设置（有时是向后兼容早期版本 SDK 所必需的）。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### G
<a name="cmake-g"></a>

生成构建构件，例如 Visual Studio 解决方案和 Xcode 项目。

例如，在 Windows 上：

```
-G "Visual Studio 12 Win64"
```

有关更多信息，请参阅您的平台 CMake 文档。

### MINIMIZE\$1SIZE
<a name="cmake-minimize-size"></a>

[ENABLE\$1UNITY\$1BUILD](#cmake-enable-unity-build) 的超集。如果为 `ON`，则此选项将打开 *ENABLE\$1UNITY\$1BUILD* 和其他二进制文件大小缩小设置。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### NO\$1ENCRYPTION
<a name="cmake-no-encryption"></a>

如果为 `ON`，则阻止将默认的特定于平台的密码学实现内置到库中。设为 *ON* 可注入您自己的密码学实现。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### NO\$1HTTP\$1CLIENT
<a name="cmake-no-http-client"></a>

如果为 `ON`，则阻止将默认的特定于平台的 HTTP 客户端内置到库中。如果为 *ON*，则需要提供自己的特定于平台的 HTTP 客户端实现。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### REGENERATE\$1CLIENTS
<a name="cmake-regenerate-clients"></a>

如果为 `ON`，则此参数会删除所有生成的代码，然后从 `code-generation/api-definitions` 文件夹生成客户端目录。例如：

```
-DREGENERATE_CLIENTS=1
```

**注意**  
要使用 `REGENERATE_CLIENTS` 参数，您必须在 `PATH` 中安装 [Python 2.7](https://www.python.org/downloads/)、Java（[JDK 1.8\$1](http://openjdk.java.net/install/)）和 [Maven](https://maven.apache.org/)。

### REGENERATE\$1DEFAULTS
<a name="cmake-regenerate-defaults"></a>

如果为 `ON`，则此参数会删除所有生成的默认代码，然后从 `code-generation/defaults` 文件夹重新生成这些代码。例如：

```
-DREGENERATE_DEFAULTS=1
```

**注意**  
要使用 `REGENERATE_DEFAULTS` 参数，您必须在 `PATH` 中安装 [Python 2.7](https://www.python.org/downloads/)、Java（[JDK 1.8\$1](http://openjdk.java.net/install/)）和 [Maven](https://maven.apache.org/)。

### SIMPLE\$1INSTALL
<a name="cmake-simple-install"></a>

如果为 `ON`，则安装过程不会在 `bin/` 和 `lib/` 下方插入平台特定的中间目录。如果您需要在单个安装目录下发布多平台版本，则设为 `OFF`。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### TARGET\$1ARCH
<a name="cmake-target-arch"></a>

要针对移动平台进行交叉编译或构建，则必须指定目标平台。默认情况下，构建会检测主机操作系统并针对检测到的操作系统进行构建。

**注意**  
当 *TARGET\$1ARCH* 为 *ANDROID* 时，还有其他选项可用。请参阅[安卓 CMake 变量和选项](#cmake-android-variables)。

值  
 *WINDOWS* \$1 *LINUX* \$1 *APPLE* \$1 *ANDROID* 

### USE\$1CRT\$1HTTP\$1CLIENT
<a name="cmake-USE_CRT_HTTP_CLIENT"></a>

如果`ON`，请使用通用运行时 HTTP 客户端，并且未构建或包含旧系统（例如 WinHttp 和 libcurl）。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### USE\$1IXML\$1HTTP\$1REQUEST\$12
<a name="cmake-USE_IXML_HTTP_REQUEST_2"></a>

仅适用于 Windows。如果是`ON`，则使用 com 对象 IXml HttpRequest 2 作为 HTTP 堆栈。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### USE\$1OPENSSL
<a name="cmake-use-openssl"></a>

如果是`ON`，则软件开发工具包使用 OpenSSL 构建；否则，则使用 OpenSSL 进行构建。[https://github.com/awslabs/aws-lc](https://github.com/awslabs/aws-lc) `AWS-LC`是由密码学团队为其客户维护的通用 AWS 密码库 AWS 。禁用该参数（设置为 `OFF`）会在系统默认目录中安装 `AWS-LC` 作为 OpenSSL 的替代项。如果您的系统中已经安装了 OpenSSL，请不要使用它。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### USE\$1TLS\$1V1\$12
<a name="cmake-USE_TLS_V1_2"></a>

如果为 `ON`，HTTP 客户端会强制执行 TLS 1.2。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### USE\$1TLS\$1V1\$13
<a name="cmake-USE_TLS_V1_3"></a>

如果为 `ON`，HTTP 客户端会强制执行 TLS 1.3。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

## 安卓 CMake 变量和选项
<a name="cmake-android-variables"></a>

在创建 SDK 的 Android 版本时（[TARGET\$1ARCH](#cmake-target-arch) 设置为 *ANDROID*），请使用以下变量。

**Topics**
+ [ANDROID\$1ABI](#cmake-android-abi)
+ [ANDROID\$1BUILD\$1CURL](#cmake-ANDROID_BUILD_CURL)
+ [ANDROID\$1BUILD\$1OPENSSL](#cmake-ANDROID_BUILD_OPENSSL)
+ [ANDROID\$1BUILD\$1ZLIB](#cmake-ANDROID_BUILD_ZLIB)
+ [安卓\$1原生\$1 API\$1LEVEL](#cmake-android-native-api-level)
+ [ANDROID\$1STL](#cmake-android-stl)
+ [ANDROID\$1TOOLCHAIN\$1NAME](#cmake-android-toolchain-name)
+ [DISABLE\$1ANDROID\$1STANDALONE\$1BUILD](#cmake-disable-android-standalone-build)
+ [NDK\$1DIR](#cmake-ndk-dir)

### ANDROID\$1ABI
<a name="cmake-android-abi"></a>

仅限 Android。控制要输出哪个应用程序二进制接口（ABI）的代码。

**注意**  
目前并非所有有效的 Android ABI 值都受支持。

值  
 *arm64* \$1 *armeabi-v7a* \$1 *x86\$164* \$1 *x86* \$1 *mips64* \$1 *mips* 

默认  
 *armeabi-v7a* 

### ANDROID\$1BUILD\$1CURL
<a name="cmake-ANDROID_BUILD_CURL"></a>

仅限 Android。如果为 `ON`，还要构建 curl。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### ANDROID\$1BUILD\$1OPENSSL
<a name="cmake-ANDROID_BUILD_OPENSSL"></a>

仅限 Android。如果为 `ON`，还要构建 Openssl。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### ANDROID\$1BUILD\$1ZLIB
<a name="cmake-ANDROID_BUILD_ZLIB"></a>

仅限 Android。如果为 `ON`，还将构建 Zlib。

值  
 *ON* \$1 *OFF* 

默认  
 *ON* 

### 安卓\$1原生\$1 API\$1LEVEL
<a name="cmake-android-native-api-level"></a>

仅限 Android。控制 SDK 针对哪个 API 级别进行构建。如果您将 [ANDROID\$1STL](#cmake-android-stl) 设置为 *gnustl*，则可以选择任何 API 级别。如果您使用 *libc\$1\$1*，则必须使用至少 *21* 级的 API 级别。

默认  
因 STL 选择而异。

### ANDROID\$1STL
<a name="cmake-android-stl"></a>

仅限 Android。控制 SDK 使用哪种 C\$1\$1 标准库。

**重要**  
如果使用 `gnustl` 选项，SDK 内部可能会出现性能问题；我们强烈建议使用 *libc\$1\$1\$1shared* 或 *libc\$1\$1\$1static*。

值  
 *libc\$1\$1\$1shared* \$1 *libc\$1\$1\$1static* \$1 *gnustl\$1shared* \$1 *gnustl\$1static* 

默认  
 *libc\$1\$1\$1shared* 

### ANDROID\$1TOOLCHAIN\$1NAME
<a name="cmake-android-toolchain-name"></a>

仅限 Android。控制使用哪个编译器来构建 SDK。

**注意**  
由于 Android NDK 已弃用 GCC，建议使用默认值。

默认  
 *standalone-clang* 

### DISABLE\$1ANDROID\$1STANDALONE\$1BUILD
<a name="cmake-disable-android-standalone-build"></a>

仅限 Android。默认情况下，Android 版本会使用通过 NDK 脚本构建的基于 Clang 的独立工具链。要使用自己的工具链，请开启此选项**。

值  
 *ON* \$1 *OFF* 

默认  
 *OFF* 

### NDK\$1DIR
<a name="cmake-ndk-dir"></a>

仅限 Android。指定一个替代路径，构建系统应从该路径查找 Android NDK。默认情况下，如果未设置环境变量 `ANDROID_NDK`，则构建系统会检查此变量。