项目使用cmake管理,由于项目的需要,核心代码要求跨 Linux/Windows/Android 三平台。Windows和Linux都好说,但Android NDK费了一番功夫还是没有解决。临时的解决方案是交给Android Studio 建项目并加入c++支持,然后将cmake项目交给android studio 的 gradle 来解决配置交叉编译工具链。

cmake 配置交叉编译工具链的方式是通过指定 CMAKE_TOOLCHAIN_FILE ,通过配置交叉编译工具链的 cmake 脚本来自动指定交叉编译使用的编译器和连接器以及各种搜索路径。

这里使用的是github上的android-cmake项目,这个项目就是上面说的 cmake toolchain 脚本。

关于cmake toolchain脚本的问题,可以查看 cmake 的文档来详细了解。

根据 android-cmake 项目的 readme 文档,并且进行了一些实际作业,并遇到了这些问题。

  1. 使用 cmake 命令行指定 -DCMAKE_TOOLCHAIN_FILE=C:\Users\uniq\source\repos\android-cmake\android.toolchain.cmake 并未生效,原因不明。
  2. 怀疑NDK可能需要使用 standalone 版本,而不是android-studio 下载的NDK-bundle,可以从 developer.android.com 下载最新的NDK。也许可以解决编译出现无法读取 platforms/usr/include/android/api-level.h 文件的问题。

以上是已经遇到的问题,如果解决了再继续更新。

c++/cmake /Android NDK 动态链接库交叉编译笔记的更多相关文章

  1. Android NDK JNI 入门笔记-day04-NDK实现Hash算法

    * Android NDK JNI 入门笔记目录 * 开头 前面的学习,我们已经掌握了 NDK 开发的必备知识. 下一步就要多实践,通过创造问题并解决问题,来增加熟练度,提升经验. 日常开发中,经常会 ...

  2. (转)Android: NDK编程入门笔记

    转自: http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html 为何要用到NDK? 概括来说主要分为以下几种情况: 1. 代 ...

  3. 【开发必备】今天我们来谈谈Android NDK动态链接库(so文件)的一些见解

    一.写在前面 直到现在,基本我写的每一个项目都会用到NDK动态链接库的知识,可见这个也的确十分常用.那么,今天,咱们就来谈谈它. 二.什么是ABI和so 1.发展 早起的Android系统几乎只支持A ...

  4. protobuf/android 交叉编译笔记

    protobuf 交叉编译笔记 目标是使用 android ndk 的工具链编译出 android armeabi-v7a 可用的 protobuf 库. 交叉编译环境配置 windows 平台 下载 ...

  5. Android NDK笔记

    目录 Android NDK笔记 AOSP Android repository Android SDK / SDK Tools NDK cmake && ninja lldb adb ...

  6. Android NDK开发及OpenCV初步学习笔记

    https://www.jianshu.com/p/c29bb20908da Android NDK开发及OpenCV初步学习笔记 Super_圣代 关注 2017.08.19 00:55* 字数 6 ...

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

    实现应用自身被卸载时打开某一网址的c代码 MyActivity: public class MyActivity extends Activity { /** * Called when the ac ...

  8. Linux Ubuntu下用Android NDK 生成独立交叉编译链

    本文主要介绍使用Android NDK生成独立交叉编译链,然后使用独立交叉编译链编译Android程序 下载NDK 下载与自己操作系统相吻合的版本 下载地址 解压到安装目录(如~/myndk): ta ...

  9. Android NDK 交叉编译C++代码生成.so共享库详细步骤

    Android NDK 交叉编译C++代码生成.so共享库详细步骤 Android NDK 调用c++ stl 模板库(修改android.mk文件) 1  在需要调用模板库的文件前包含头文件:   ...

随机推荐

  1. Python自学笔记-lambda函数(来自廖雪峰的官网Python3)

    感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. 匿名函数 通过 ...

  2. python urllib、urlparse、urllib2、cookielib

    1.urllib模块 1.urllib.urlopen(url[,data[,proxies]]) 打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作.本例试着打开google i ...

  3. HDU3605 Escape

    思想:缩点+sap Max,t还可以缩小,优化,高数课写的,有点丑,暂时懒得改. #include<cstdio> #include<cstdlib> #include< ...

  4. 通用table样式

    <html> <head> <title>通用table样式</title> <style type="text/css"&g ...

  5. H5新手快速入门 简单布局

    布局*{ margin: 0; padding: 0;}.quan{ width: 100%; height: 2000px; background: black url("../ima/b ...

  6. DevOps之服务-监控工具

    唠叨话 关于德语噢屁事的知识点,仅提供精华汇总,具体知识点细节,参考教程网址,如需帮助,请留言. <DevOps教程> <DevOps之服务-监控工具> 注:关于监控工具的具体 ...

  7. IDEA Maven 三层架构 2、运行 springMVC

    运行 SpringMVC 首先要理解 SpringMVC 应用程序的入口是配置文件 web.xml,其路径为"src/main/webapp/WEB-INF/web.xml",通过 ...

  8. 【特效】页面滚动到相应位置运行css3动画

    请到我的个人博客网站上浏览此文章,欢迎评论和建议. 文章链接:http://www.xiaoxianworld.com/archives/87 现在css3动画很常见了,实际项目中经常应用,特别是那种 ...

  9. CSS之 absoulte 属性

    特性: absoulte 与 float 具有相同的特性:包裹性,与破坏性  absoulte 与 float 可以交替使用  不受 relative 限制的 absoulte 定位,行为表现上可以不 ...

  10. 支持“WeShopDb”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库

    用EF框架搭建完成后,为其中一张表加了一个字段,程序运行时候就一直报这个错误,郁闷了一个晚上,不过通过找资料,上网搜答案,找了好几个解决方案可以解决这个问题,我把他吗分享出来希望可以帮助到你们 方法一 ...