2. 《深入理解java虚拟机》中推荐的CmakeList.txt的github地址,是针对于Windows而言,linux和mac 不太适用. 昨天改了半天还改成功, 但是其中的写法可以学习参考
交叉编译算是每个嵌入式开发者都会经历的一道坎吧,通俗的描述就是搭建Arm板代码编译环境,让代码能够在Arm板子上跑起来。常用到的编译工具为Makefile和CMake,本篇记录下CMake的常用技巧。
① 进入微软官网 : https://www.microsoft.com/zh-cn/
前面文章《OpenCV4Android中NDK开发(一)--- OpenCV4.1.0环境搭建》自己配置好了NDK的Opencv方法,因为在Android中使用最常见的还是摄像头实时处理,所以最近一直在研究摄像头和OpenCV之间的互助。
Hello,大家好,因为一些个人原因。导演,拍摄和后期一部心理情景剧,学习,谈恋爱,策划笔记活动等等,一直没空来写文章,趁今天写完学生成绩管理系统有空来写一篇,水文章...
前面的章节已经把NanoMsg的简介,及C#相关的NNanoMsg使用Demo已经介绍完成了,今天这篇开始我们就要写关于Android怎么使用NanoMsg的文章,自己在网上搜了好久,发现Android中并没有已经封装好的NanoMsg的好用的包,所以我们就只能自己来实现了,相比C#中要麻烦的多。
最近在linux上使用Clion这个C++ IDE,感觉很好,JetBrain的产品都很不错。
RTMP 协议 : RTMP 协议是基于 TCP 协议的实时消息传输协议 ( Real Time Messaging Protocol ) ;
配置该环境主要是配合 Android 进行开发 , 目前 Android 中调用 C/C++ 代码使用的都是 CMake 构建项目 , 因此在次数 VS 中要使用 CMake 构建 FFMPEG 的开发环境 ;
项目位置 https://github.com/deepsadness/SDLCmakeDemo
http://blog.csdn.net/dbzhang800/article/details/6314073
参考博客 : 【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )
cmake是kitware公司以及一些开源开发者在开发几个工具套件(VTK)的过程中所产生的衍生品。后来经过发展,最终形成体系,在2001年成为一个独立的开放源代码项目。其官方网站是www.cmake.org,可以通过访问官方网站来获得更多关于cmake的信息,而且目前官方的英文文档比以前有了很大的改进,可以作为实践中的参考手册。
首先rgbdslamv2 是2014年开源出来的一个机遇RGBD相机构建点云地图的框架【1】,作者已经在github上开源出了代码【2】,并且给出了一个一键安装的脚本(install.sh)。但是我们会发现,我们直接运行这个install脚本会在~/Code目录下创建一个rgbdslam_catkin_ws 工作空间,然后我们按照传统的catkin_make命令进行编译会发现代码直接编译通过,,不会提示任何错误信息,但是在使用命令
作者:allsochen ,腾讯 PCG 后台开发工程师 这就是 CLion 几年前写过一篇 eclipse C++ 的文章、现在还提 eclipse 的话人民群众会仇恨我,我的朋友和家人也会嘲笑我,唾弃我。因为 JetBrains 家的系列产品 CLion 体验耍 eclipse 好几条街。引用知乎网友对 CLion 和 vim/emacs 的形象比喻,如图所示: 从图中可以看出 CLion 的定位是一个完整的现代化 C++工具,包含很多实用的功能,而 vim 则是轻巧锋利,如果你在 CLion
CMake 项目中 CMakelist.txt 应该怎么写,才能够实现跨平台编译?
后来盯着 CMakeList,看到这些编译、link 优化项,心想也没有可能是这些的配置导致的:
前面我们已经介绍了如何在Windows系统中安装OpenCV 4。虽然本书中程序代码主要在Windows运行,但是相信有一些读者使用Ubuntu系统进行计算机视觉的学习,因此本小节将介绍如何在Ubuntu系统中安装OpenCV 4.1。如果你仅仅是在Windows系统中使用OpenCV 4.1,可以跳过本小节内容。对于Ubuntu版本的介绍这里不做过多的说明,感兴趣读者可以自行查询相关内容,笔者使用的是Ubuntu 16.04,因此将会介绍如何在该系统中安装OpenCV 4.1。可能有读者使用Ubuntu 14.04或者Ubuntu 18.04,不过安装OpenCV 4.0的方法和步骤都是相似的。
前面几章我们已经把SurfaceView加载Camera实现实时帧显示图像完成了,我也说过,我们加载实时图像是为了对接OpenCV进行图像处理所以才生成的Bitmap图像。
① 构建工具 : CMake 是 Android 中使用 C/C++ 构建原生库的默认工具 ;
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。
② 主要作用 : 主要作用是配置本工程中的 C/C++ 源码如何编译成动态库的 ;
前一篇我们介绍了《Android NDK编程(一)---NDK介绍及环境搭建》,简单介绍了一下什么是NDK和JNI,以前NDK环境的配置及怎么创建第一个NDK的程序,在上一篇的左侧栏中有一个CMakeList.txt的文件,这一章我们就来解析一下CMakeList文件。
在 oboe-1.4.3 代码示例 中的 hello-oboe 示例 , 没有添加 Oboe 的网络依赖 ( jcenter / maven ) , 因为在示例中有 Oboe 的源码 , 其路径是在 oboe-1.4.3 目录下 , 在 oboe/releases 页面下载的 Oboe 源码及示例程序 , 解压后的 oboe-1.4.3\src 路径下 ;
对Framework层的了解学习是我们进阶的一个重要阶段。通过 AS 查看 Framework 代码体验非常好,无论是索引还是界面都让人很满意,但是当你跟踪代码,发现进入 native 逻辑时,就会发现 Android Studio 对 native 代码的支持非常不好,不能索引不支持符号搜索不能跳转等。
注:参考自bilibili系列视频,OpenGL 从入门到成魔-第1章- OpenGL 环境的搭建https://www.bilibili.com/video/BV1qa4y1e7zP
打开 Visual Studio , 点击右侧的 " 创建新项目 ( N ) " 选项 ;
使用jni进行opencv开发可以快速地将PC端的opencv代码移植到手机上,但是如何在android studio下进行配置,网上几乎找不到教程,大多都是eclipse下使用mk文件的方法,找不到使用gradle的方案,摸了几天,总算是摸清楚了。
地址:https://download.qt.io/archive/qt/ 源码使用tag版本,6.0以上版本有cmakelist.txt可以直接cmake编译(但差的三方库比较多),6.0以下的版本,cmakelist.txt在qtbase文件夹中,使用
使用ctkPluginFramework作为插件系统框架的确有着众多开发上的优势。最近收到一些站内信,大家都想使用ctkPluginFramework但是不知道如何编译,这篇教程就来讲一讲ctkPluginFramework插件系统在Windows下的编译过程。
1 . JNI 简介 : JNI 是一套框架 , 能够让开发者在 Java 中调用 C / C++ 代码 , JNI 范围较广 , 凡是可以运行 Java 代码的地方 ( 如 Linux , UNIX , Windows , Android 等平台 ) , 都可以通过 JNI 接口 调用 C/C++ 代码 ;
这个项目其实在很早之前就开始了,最初的目的是为它(Future3D)而准备的,因此最近一段时间利用晚上下班的时间以及周末的时间在完成,故很少更文。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details/77803333
Cmake是跨平台构编译大型项目的工具,配合make工具和编译器我们理论上我们可以编译任何工程。具体的介绍就不多说了,不论是OpenCV还是Pytorch都是用cmake作为构建工具,当然还有很多很多工程项目使用它,这里不进行详细的介绍。
1、第一次配置参数时,不完整,出现错误!,(报错也会产生CMakeCache文件)
① H.264 标准 : H.264 是视频编码标准 , 由 ITU 和 MPEG 制订 ;
CMake的全称是Cross-platform Make。我第一次参与Linux C++开发时使用的工具是Make,而后开始切换到CMake,一开始以为CMake是和C语言有关,原来开头的C表示它可以跨平台。
.NET 以 MIT 协议开源,于是任何人都可以尝试对其进行一丢丢的修改以实现一些原本很难实现的功能,例如在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时。在这个例子中,我们修改了 AppHost 添加了一个可以定制 .NET 运行时路径的功能,这就需要我们能编译、修改和调试 dotnet/runtime 仓库里的 apphost 部分。
一直很好奇`android.useDeprecatedNdk = true`到底是使用的什么废弃ndk, 但是找资料一直没有找到相关的.
1. POSIX 线程局限性 : 在 Android , Linux , UNIX , MAC 中可以直接使用 POSIX , Windows 不可以直接使用 ;
1 . 编译 FFMPEG 函数库 : 【Android FFMPEG 开发】FFMPEG 交叉编译配置 ( 下载 | 配置脚本 | 输出路径 | 函数库配置 | 程序配置 | 组件配置 | 编码解码配置 | 交叉编译配置 | 最终脚本 )
背景简单CMake 父子项目+链接外部库例子+QT父工程CMakeList.txtcmake_minimum_required(VERSION 3.12)project(zd_cmake)#set(ZDPOWER_PATH "D://test") # 设置环境变量#include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/zdpower.cmake) # 包含其他cmake文件# 使用add_subdirectory 添加子工程add_subdirectory(zdstorelib
c++ 代码风格中,类型与参数名最好分开,也就是说,原来int *a,想改成int* a
Android中内置的MediaCodeC提供了很多音视频编解码器,但由于MP3是有版权的,所以原生MediaCodeC只提供了MP3的解码能力,对于MP3的编码就需要借助外部库了。LAME库由开源社区开发,当前是公认有损质量MP3中压缩效果最好的编码器。本文的主要工作为将LAME源码编译为so库,并在Android中使用。
以下就是main.cpp的代码,复制文章macOS下使用Clion写OpenGL的代码。
在上一篇文章《WebAssembly 如何演进成为“浏览器第二编程语言”?》中, 我们较为详细地讲述了 WebAssembly 的演变历程,通过 WebAssembly 的演变历程,我们可以对 WebAssembly 的三个优点(二进制格式、Low-Level 的编译目标、接近 Native 的执行效率)有比较深刻的理解。
在上一篇博客 【Android 安装包优化】native 层 jni 中使用 7zr 动态库处理压缩文件 ( 修改 7zr 交叉编译脚本 Android.mk | 交叉编译 lib7zr.so 动态库 ) 中 , 交叉编译出了 4 种 CPU 架构的动态库 ;
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/51889385
CMakeList.txt 构建脚本如下 : 跟着该构建脚本 , 逐步向下排查 ;
将 PCM 音频采样编码成 AAC 格式 , 需要使用 FAAC编码器 , 在上一篇博客 【Android RTMP】音频数据采集编码 ( 音频数据采集编码 | AAC 高级音频编码 | FAAC 编码器 | Ubuntu 交叉编译 FAAC 编码器 ) 中完成了对 FAAC 音频编码器的交叉编译 , 交叉编译结果如下 :
领取专属 10元无门槛券
手把手带您无忧上云