message(FATAL_ERROR "NO ASSEMBLER! Must install nasm or yasm")
CMake 中的 YASM 支持
https://developer.android.google.cn/ndk/guides/cmake#yasm-cmake
NDK 为构建以 YASM 编写的汇编代码提供 CMake 支持,以便在 x86 和 x86-64 架构上运行。YASM 是基于 NASM 汇编程序且针对 x86 和 x86-64 架构的开源汇编程序。
该程序可用于将汇编语言程序或例程与 C 代码关联,以便从您的汇编代码访问 C 库或函数。您还能在编译完的 C 代码中添加简短的汇编例程,以充分利用汇编代码提供的更出色的机器性能。
要使用 CMake 构建汇编代码,请在您项目的 CMakeLists.txt
中作出以下变更:
- 调用
enable_language
,且值设置为ASM_NASM
。 - 根据您是构建共享库还是可执行二进制文件来决定调用
add_library
或add_executable
。在参数中,传入源文件列表。源文件包括 YASM 中汇编程序的.asm
文件,以及关联 C 库或函数的.c
文件。
以下片段展示如何配置您的 CMakeLists.txt
,以将 YASM 程序构建为共享库。
cmake_minimum_required(VERSION 3.6.0)
enable_language(ASM_NASM)
add_library(test-yasm SHARED jni/test-yasm.c jni/print_hello.asm)
如需通过示例了解如何将 YASM 程序构建为可执行文件,请参阅 git 代码库中的https://android.googlesource.com/platform/ndk/+/master/tests/device/yasm/ 代码。
如您遇到 CMake 开放源代码版本以外的问题,请通过 GitHub 上的 [android-ndk/ndk](https://github.com/android-ndk/ndk/issues)
问题追踪器报告。
网友评论