消失了几个月我又回来了,距离上一次承诺更新NDK的知识依旧过了好久,我想说我真的没有太监。。。最近换了工作,来到了魔都混日子,因为找工作耽误很多写博文的时间。不得不说现在安卓开发的工作真难找啊,找了一个多月才找到一个6,7k的- -希望大家不要裸辞,慎重跳槽。。。不过这家公司的需求都比较复杂,属于之前接触较少的,而且对NDK开发有很大的要求,也可以趁机锻炼一下自己!    &n
转载 2024-08-30 12:46:34
31阅读
# Android CMake 引入 SDL 的全面指南 ## 引言 在 Android 开发中,尤其是游戏和多媒体应用的开发中,SDL(Simple DirectMedia Layer)是一个广泛使用的库,可以有效处理图形、音效和输入。本文将详细介绍如何在Android项目中通过CMake引入SDL库,并给出相应的代码示例。 ## CMake 简介 CMake 是一种流行的跨平台构建系统,它
原创 2024-08-15 08:06:56
212阅读
# Android CMake 引入 GUI 库 在 Android 开发中,尤其是在使用 CMake 构建项目时,常常需要集成一些图形用户界面(GUI)库,以实现友好的用户交互界面。本文将通过一个示例演示如何在 Android 项目中通过 CMake 引入 GUI 库。 ## 什么是 CMakeCMake 是一个跨平台的开源构建系统,可以简化软件的构建过程。它使用一种简单的配置文件(`
原创 2024-09-27 07:02:33
104阅读
# Android cmake 源码方式引入 ## 概述 在Android开发中,我们通常会使用CMake来构建和管理我们的Native代码。本文将向你介绍如何在Android项目中使用CMake的源码方式引入外部库。 ## 流程图 以下是整个流程的步骤图示: ```mermaid stateDiagram [*] --> 拷贝外部库源码 拷贝外部库源码 --> 配置CMak
原创 2023-12-10 06:07:57
176阅读
一、Android NDK 构建脚本、二、CMake 构建脚本示例、三、CMake 命令手册、1、CMake 脚本命令、2、CMake 工程命令
原创 2022-03-08 14:33:40
1011阅读
Android Studio中使用cmake编译FFmpeg最进根据公司项目需要,学习FFmpeg音视频编解码做技术储备,项目是运行在android平台上的,所以需要把FFmpeg移植到Android上,之前做过一个Android NDK 编程的Demo,使用的是cmake编译方式,所以在这个项目中仍采用cmake。FFmpeg下载下载地址:https://ffmpeg.org/download
转载 2023-11-14 21:21:50
120阅读
 回顾在上一篇笔记里总结的时候说到,aux_source_directory这个函数在添加源码文件时,是不会把头文件添加进去的,这里就介经一下另外一个方法,也是我一直使用的。添加文件*.cpp与*.h文件夹结构CMakeFile |--CMakeLists.txt |--main.cpp |--stdafx.hCMakeLists.txt1 # CMake 最低版本号要求
cmake入门之二:调用外部共享库和头文件1.创建外部共享库1.1 创建相关文件或文件夹1.1.1 ext目录下的CMakeLists.txt1.1.2 ext目录lib文件夹下1.1.2.1 hello.h1.1.2.2 hello.c1.1.2.3 CMakeLists.txt1.2 编译、安装2.创建当前项目2.1 创建相关文件或文件夹2.1.1 project目录下的CMakeLists
cmake是⾼级编译配置⼯具,是处理⼤型C/C++/JAVA项⽬的一个编译工具。 cmake的所有操作都是通过编译CMakeLists.txt来完成的,这里需要注意的是,CMakeLists.txt文件名不能有错,特别是大小写。关键字在介绍之前,先说明一下。指令是⼤⼩写⽆关的,参数和变量是⼤⼩写相关的,但仍然推荐全部使⽤⼤写指令。1.PROJECT可以⽤来指定⼯程的名字和⽀持的语⾔,默认⽀持所有语
# 如何在Android Studio中引入头文件 ## 概述 在Android Studio中使用CMake来编译NDK项目时,会遇到需要引入C/C++头文件的情况。本文将介绍如何在Android Studio中引入头文件的步骤以及每一步需要做什么。 ## 整体流程 以下是引入头文件的整体流程: ```mermaid journey title 如何在Android Studio中
原创 2024-02-26 05:42:35
204阅读
# 如何在 CMake引入 Python 在现代软件开发中,CMake 是一种非常流行的构建工具,而 Python 则是一种功能强大的编程语言。如果你想在 CMake 项目中引入 Python,你需要遵循一些基本步骤。本文将带你一步步实现如何在 CMake引入 Python,并提供详细的代码示例和解释。 ## 流程概述 以下是将 Python 引入 CMake 工作流程的整体视图:
原创 8月前
197阅读
在现代软件开发中,CMake作为一种跨平台的构建工具,愈发受到开发者的青睐。而Python则因其简洁优雅的语法和强大的第三方库而广泛用于快速开发和原型制作。将这两者结合,能够极大地提升项目的灵活性和可维护性。本篇博文将为你分享如何在CMake引入Python,涵盖环境准备、集成步骤、配置详解、实战应用、排错指南,以及生态扩展等多个方面。 ## 环境准备 要在CMake项目中引入Python,
原创 5月前
24阅读
这次就讲一些关于python 调用c++动态库的话题(毕竟图像算法,我就用opencv做些事情啦)。首先推荐一下Clion以前在windows 上使用vs20..系列的IDE,被IDE蒙蔽了双眼,其实很多c/c++基本功底都没有掌握,现在使用macbook进行开发,没有vs可以用,所以我安利一下Clion,对于我们用惯pycharm的人会很爽,对学生也比较友好,我们上了班的程序员就尽量支持下正版啦
一、include_directories该命令用于增加一个编译头文件。其基本语法是:include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...])目录可以是绝对路径也可以是相对路径,相对路径的基准是CMAKE_CURRENT_SOURCE_DIR,默认情况下,包含目录是从已存在的包含目录列表后追加的,如果你想改变默认行为你可以设置CMAK
转载 2023-11-24 13:05:14
345阅读
1、新建项目新建项目t4,目录结构如下:该程序引入了自建的hello.h程序库包含了函数func();main.c的内容如下所示://main.c #include <hello.h> int main() { func(); return 0 ; }2、导入第三方头文件hello.h 位于/root/cpp_test/backup/cmake_test/t4/incl
转载 2023-11-24 10:00:32
781阅读
目录1 什么是pkg-config?2 cmake导入pkg-config?2.1 安装非默认路径下2.2 安装默认路径下3 OpnCV非默认安装(非ROOT执行cmake . .),cmake找不到opencv.pc?4 源代码 1 什么是pkg-config?在之前我假定你已经熟悉一些cmake的语法,不会也没关系,百度一下就好了。 如果你对pkg-config这种方式管理工程很熟悉,你可以
转载 2024-05-15 17:54:41
586阅读
一、在 Android Studio 中创建 Native C++ 工程、二、C/C++ 源码编译过程、三、Makefile 工具、四、CMake 引入
原创 2022-03-08 14:33:39
851阅读
一、背景:Cmakelist的使用项目创建好以后我们可以看到和普通Android项目有以下4个不同。main 下面增加了 cpp 目录,即放置 c/c++ 代码的地方module-level 的 build.gradle 有修改增加了 CMakeLists.txt 文件多了一个 .externalNativeBuild 目录image.png二、正文第一章:CMakeLists.txt 文件 讲解
转载 2023-08-21 21:25:48
129阅读
# 使用CMake引入Python库文件的教程 CMake是一种流行的跨平台构建工具,广泛用于C++项目的构建管理。在现代开发中,我们常常需要在C++代码中使用Python库,让两者结合以实现优雅的解决方案。本文将详细介绍如何通过CMake引入Python库文件,并提供相关代码示例以及类图。 ## 1. 基本概念 在集成C++和Python时,通常会使用像`pybind11`这样的库来创建C
原创 8月前
317阅读
CMake是一个跨平台的编译配置工具,CMake运行时,有两种主要模式:执行脚本模式,和执行编译模式 。本文主要介绍CMake执行脚本模式,以及如何编写CMake脚本,并给出简单的示例。至于CMake时如何安装、配置等内容,网上到处都有资料可查,本文在此不做介绍。一、CMake版“Hello World” 先来看一段示例:新建一个文本文件,"cmake.txt";在文件中输入内容: me
转载 11月前
28阅读
  • 1
  • 2
  • 3
  • 4
  • 5