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 中作出以下变更:

  1. 调用 enable_language,且值设置为 ASM_NASM
  2. 根据您是构建共享库还是可执行二进制文件来决定调用 add_libraryadd_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) 问题追踪器报告。

2019-11-25 编写cmake 脚本注意事项相关推荐

  1. shell实例第1讲:编写shell脚本注意事项

    编写shell前需要注意以下几点,注意点会不断更新. 1.开头加解释器:#!/bin/bash 2.语法缩进,使用四个空格 3.多加注释说明 4.命名建议规则:变量名大写.局部变量小写,函数名小写,名 ...

  2. 【每日早报】2019/11/25

    ✦ 中国广电首个5G基站在湖南长沙开通,采用华为全球领先设备 ✦ 全国医保电子凭证在济南首发,山东就医买药实现无卡结算 ✦ 浙商银行:将于11月26日在上交所上市,发行价格4.94元/股 ✦ 谷歌云打 ...

  3. CFA课程打卡-2019.11.25

    学习时长:75分钟 学习内容:今天进入了最后一章的学习内容,也就是如何使用金融计算器,通过这三小节的学习,熟悉了计算器上一些以前不知道的功能,比如用计算器求排列组合,还有倒数上的一些功能,还有货币事件 ...

  4. 怎么编写Linux脚本循环语句,shell脚本及常用循环语句

    博文结构 什么是shell 简单编辑shell 循环语句 一.什么是shell及作用 Shell字面理解就是个"壳",是操作系统(内核)与用户之间的桥梁,充当命令解释器的作用,将用 ...

  5. Android studio 3.0 (CMake)编写cydia脚本hook native

    在anndroid studio 2.2 后,用它编写native代码只支持用CMake进行,然后我正在准备用Cydia Substrate 来 hook native代码的时候,发现网上没有用CMa ...

  6. 单细胞转录组数据整合分析专题研讨会(2019.11)

    2019年10月9日,单细胞转录组再等Nature.题为Decoding human fetal liver haematopoiesis的研究,对受孕后4周至17周的人胚胎肝脏.卵黄囊.肾脏和皮肤组 ...

  7. vimscript:编写Vim脚本

    编写Vim脚本 https://blog.csdn.net/yz457694/article/details/77316421 这篇文章是手册的中文译版整理而来(英文看着太慢了,感谢前人铺路Orz-) ...

  8. 纯c#编写的脚本引擎(非CodeDom)

    时间有个项目,因为其中需要使用脚本做模板数据的计算,因此让我对脚本引擎产生了兴趣,于是上网到处寻找资料,于是找到了<龙书>.CodeDom.于是又找了半天,找不到开源的脚本引擎源码,脑袋一 ...

  9. 初学者编写bash脚本教程

    初学者编写bash脚本教程 bash shell script 定义 bash bash是命令语言解释器.广泛用于各种gun/unix系统上的默认命令解释器.全程叫做"Bourne-Agai ...

最新文章

  1. visual webgui theme designer
  2. SystemView软件中“Butterworth Lowpass IIR“的完美设置
  3. python twisted教程_python-twisted模块代码实例
  4. 【深度学习】利用神网框架分割病理切片中的癌组织(胃)
  5. VBA语言(二)变量、数据类型和常量
  6. php 文件迭代对象,通过PHP中的stdClass对象进行迭代
  7. Struts2中的Action
  8. centos8.2安装mysql_为CentOS 8操作系统安装MySQL的方法,以安装MySQL 8为例
  9. 为什么wait/notify必须要和synchronized一起使用?
  10. 使用API网关构建微服务
  11. dbf转成excel_DBF文件转换成excel工具(DbfToExcel)
  12. 00、Python源码编译
  13. ET框架---UnityWebRequestAsync学习笔记
  14. 微信终于要对聊天记录动手了?
  15. python 恢复删除的文件_如何恢复已删除的python文件(一看就会的恢复软件)
  16. vos3000配置与通讯测试(一)
  17. 在centos下安装pycrypto报错 RuntimeError: autoconf error
  18. 美团云深度学习平台-快速开始
  19. 畅邮(DM Pro)-一款强悍、纯净而稳定的重量级电子邮箱客户端(支持分发、追踪)...
  20. 洛谷日报索引(2020、2019、2018)

热门文章

  1. sql 上亿 查询_在文件上使用 SQL 查询的示例
  2. python的库有哪些餐厅_Python告诉你上海有哪些高性价比的西餐厅
  3. 背景图片平铺(HTML、CSS)
  4. 智慧城市特效(建筑颜色渐变、飞线、扫光、扫描、光墙、线路、水、道路线条、锥形标、漫游)three+shader
  5. OpenCV 直方图均衡化 equalizeHist
  6. 为什么要使用git pull --rebase?
  7. [译] 使用 iPhone X 与 Maya 实现快速面部捕捉
  8. 不是程序员,代码也不能太丑!python官方书写规范:任何人都该了解的 pep8
  9. 高速计算机的应用领域概括,[其它课程]计算机基础教案第一篇第一、二章.doc
  10. php伪协议漏洞_php伪协议利用文件包含漏洞