CMake构建NDK项目提示asm/types.h找不到

用CMake构建NDK项目时,会传入toolchain的cmake脚本文件android.toolchain.cmake给CMake。这个文件中会做若干设定,其中就包括include路径。

我遇到的情况是,自己手动修改CMAKE_C_FLAGSCMAKE_CXX_FLAGS时,覆盖了它们原有的(android.toolchain.cmake修改后的)值,导致asm/types.h找不到。

我的错误设定:

set(CMAKE_C_FLAGS "${MY_CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${MY_CMAKE_CXX_FLAGS}")

正确做法应该是追加内容而非修改:

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MY_CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MY_CMAKE_CXX_FLAGS}")

P.S. 排查方法:由于我是基于ninja构建的(cmake+ndk的组合下,现在通常用ninja),通过对比”能正常构建的工程“和”提示asm/types.h找不到的工程“之间${CMAKE_BINARY_DIR}目录下的rules.ninjabuild.ninja来发现问题所在。

原文地址:https://www.cnblogs.com/zjutzz/p/12234200.html

时间: 2024-08-02 22:11:50

CMake构建NDK项目提示asm/types.h找不到的相关文章

Jenkins构建Python项目提示:'python' 不是内部或外部命令,也不是可运行的程序

问题描述: jenkin集成python项目,立即构建后,发现未执行成功,查看Console Output 提示:'Python' 不是内部或外部命令,也不是可运行的程序,如下图: 1.在 Windows 提示符下运行是没有问题. 2.把Jenkins项目配置中 python main.py   修改成python可执行文件全路径:D:\Python35\python.exe main.py ,再次构建也没有问题. 这是因为 Jenkins 缺少环境配置. 解决方法: 配置构建执行状态: 1.回

linux源码分析之字节序(2)-- types.h

这一节主要讲linux的数据类型,主要是为了方便理解接下来将大端.小段字节序定义的源码. 首先,来看看 include/linux/types.h 源码: ------------------------------------------------------------------ #ifndef _LINUX_TYPES_H #define _LINUX_TYPES_H #include <asm/types.h> #ifndef __ASSEMBLY__ #include <l

用命令行对NDK项目进行构建(Win7环境下,以hello-jni项目为例)

尽管Eclipse可以很好地简化整个构建和部署过程,但Eclipse不是构建Android NDK项目的必要条件,整个过程也可以用命令行方式执行. 用原生组件构建Android项目需要两步:第一步构建原生组件,第二步构建Java应用程序并将Java应用程序与其原生组件打包. 第一步:构建原生组件. (1)打开命令提示符,将hello-jni project所在目录更改为当前目录. (2)在命令行下执行 ndk-build(ndk-build是一个调用Android构建系统的辅助脚本).这时And

android studio使用CMake和NDK,实现应用自身被卸载时打开某一网址

实现应用自身被卸载时打开某一网址的c代码 MyActivity: public class MyActivity extends Activity { /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ma

学习使用CMake构建工程

本文记录学习使用CMake的过程. 安装CMake请参考: http://blog.csdn.net/alex_my/article/details/17310001 本文使用Win7X64, VS2012. 参考了这篇文章: http://blog.csdn.net/fan_hai_ping/article/details/8208898 本文所用到的代码已打包: http://download.csdn.net/detail/alex_my/6904069 请耐心一行行的看下去! 目录: 1

CMake命令:CMake构建系统的骨架

CMake命令:CMake构建系统的骨架 80个命令(转载自http://www.cnblogs.com/coderfenghc/archive/2012/06/16/CMake_ch_01.html#2996205) CMD#1: add_custom_command为生成的构建系统添加一条自定义的构建规则. add_custom_command命令有两种主要的功能:第一种是为了生成输出文件,添加一条自定义命令. add_custom_command(OUTPUT output1 [outpu

4、Jenkins 使用maven构建一个项目

一.使用maven构建项目的前提: 请确保jenkins服务器上安装配置了maven软件,如果不清楚如何安装配置,请参考前面第二篇jenkins的安装配置. 二.如何构建一个项目 登录jenkins服务器,在主页左侧菜单栏点击"新建" 在Item名称后面输入项目名称,名字随便起,为避免编码问题,请使用英文.然后选择下面的"构建一个maven项目"点击OK 在源码管理这里选择Git,因为我的代码都在Git仓库里面."Repository URL"这

【DirectX SDK Extra】提示缺少Qedit.h问题 (转)

原文转自 http://blog.csdn.net/joeblackzqq/article/details/10944005 DirectX 9.0 SDK 开发包以及扩展包下载(February 2005) http://dev.csdn.net/article/62/62941.shtm.直接到微软官网下的话,需要validation确认. http://download.microsoft.com/download/7/b/9/7b92308a-ec8d-4016-8d45-2f91dd1

【转】使用Eclipse构建Maven项目 (step-by-step)

安装eclipse 及配置maven时,参考的资料!!! from:http://blog.csdn.net/qjyong/article/details/9098213 Maven这个个项目管理和构建自动化工具,越来越多的开发人员使用它来管理项目中的jar包.本文仅对Eclipse中如何安装.配置和使用Maven进行了介绍.完全step by step. 如果觉得本文对你有用,请移步到:http://download.csdn.net/detail/qjyong/5582071 下载PDF版,