前言 交叉编译算是每个嵌入式开发者都会经历的一道坎吧,通俗的描述就是搭建Arm板代码编译环境,让代码能够在Arm板子上跑起来。常用到的编译工具为Makefile和CMake,本篇记录下CMake的常用技巧。入门案例:单个源文件代码路径:https://gitee.com/LinuxTaoist/DesignMode/tree/master/FactoryMode工程结构.
├── CMakeL
set_target_properties 的作用是设置目标的属性,可以是目标文件输出的名称或者目录、目标文件的版本号。与之对应的,我们可以使用 get_target_properties 来获取目标文件某一属性对应的值。命令格式如下:set_target_properties(目标文件1 目标文件2 ...
PROPERTIES
cmake教程参考什么是cmakecmake 常见语法罗列CMake可用变量入门案例单个源文件多个源文件同一目录,多个源文件多个目录,多个源文件进阶案例自定义编译选项指定安装和测试定制安装规则为工程添加测试支持gdb添加环境检查添加版本生成安装包将其他平台的项目迁移到 CMake其他 参考超详细的cmake教程
camke-examples的中文阐释(推荐)。在此基础上,有从其他博客文章学习进行
目录 目录前言正文准备配置使用项目文件构成代码构成运行后记 “你的时间非常值钱,我是单元测试,我在编程世界等你。 ”前言跳过废话,直接看正文此前我很少写单元测试,总认为那是在浪费时间。但后来发现,节省的那点写测试代码的时间远远抵不上花在后期调试上的时间。最近在看《Angile Java》,这才逐渐了解到单元测试在软件开发过程中的重要性,因此决定从现在开始要养成写单元测试的习惯。Java有大名鼎鼎的
转载
2024-06-04 05:49:37
143阅读
1. 安装gtest2. 配置工程3. 进行单元测试 1. 安装gtest 将gtest压缩文件下载放到指定位置,进行解压缩,可看到如下结果;安装源码:https://github.com/smarr/googletest2. 配置工程将gtest的头文件添加到工程 项目属性 ——— C/C++常规——–附加包含目录———编辑———添加头文件将动态库进行链接项目属性——-链接器—–附
转载
2024-04-16 10:38:12
1545阅读
高效率l解决办法cmake .. -DBUILD_TESTS=OFF
原创
2022-02-09 14:05:42
305阅读
前言前面的文章介绍了一个最简单的CMake工程,这篇文章将介绍一个稍微复杂一些的CMake工程,结合这个工程总结一下在组织一个C/C++工程时最为常用的一些CMake命令和变量。对于涉及到的命令和变量,介绍的原则是点到即止,先仅需掌握基本用法即可,让工程跑起来。上一篇文章中那个最简单的CMake Hello World工程,在其CMake脚本文件CMakeLists.txt中,仅有一句话:add_
高效率l解决办法cmake .. -DBUILD_TESTS=OFF
原创
2021-08-07 08:34:12
542阅读
gMock是什么当我们去写测试时,有些测试对象很单纯简单,例如一个函数完全不依赖于其他的对象,那么就只需要验证其输入输出是否符合预期即可。但是如果测试对象很复杂或者依赖于其他的对象呢?例如一个函数中需要访问数据库或者消息队列,那么要想按照之前的思路去测试就必须创建好数据库和消息队列的客户端实例,然后放在该函数内使用。很多时候这种操作是很麻烦的,此时Mock Object就能帮助我们解决这个问题。一
转载
2024-04-22 10:08:11
65阅读
文章目录一、什么是cmake?二、cmake快速使用例子三、CMake关键字介绍project关键字set关键字message关键字add_executable关键字target_include_directories关键字链接库target_link_librariesadd_subdirectory 指令更改二进制的保存路径安装静态库和动态库的构建任务:find_package包含第三方库三
转载
2023-11-10 22:29:30
225阅读
gcov:GCC Coverage,是一个测试代码覆盖率工具,是命令行方式,伴随GCC发布,配合GCC共同实现对C/C++文件的语句覆盖和分支覆盖测试 与程序概要分析工具(profiling tool,例如gprof)一起工作,可以估计程序中哪一段代码最耗时gcov可以统计每一行代码的执行频率,实际上哪些代码确实被执行了,每一段代码(section code)的耗时(执行时间),因此,gcov可以
linux-0.00很简单,两个进程task0,task1,task0打印A,task1打印B,在时钟中断中调度进程运行。我把源代码上传到了csdn的资源里面,在这里下载,可以用bochs模拟,赶紧试试吧。简单说一下,就两个文件,boot.s和head.s。head.s被编译成system模块boot.s编译出的MBR用于将编译出的system模块从软盘中读到内存0x10000处,然后跳到0x10
1. 每个文件夹下创建一个CMakeLists.txt 2. CMakeLists.txt 中配置如下内容: cmake_minimum_required(VERSION 3.10) project(project_name) SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXF ...
转载
2021-09-10 08:49:00
155阅读
2评论
这篇文章给大家介绍下JNI / NDK开发。采用的是Android Studio2.2开发环境,使用CMake方式进行开发。JNI(Java Native Interface)是java与C / C ++进行通信的一种技术,使用JNI技术,可以调用C / C ++的函数对象等等,Android中的Framework层与Native层就是采用的JNI技术。我们知道,Android系统是基于linux
转载
2023-09-19 16:24:10
111阅读
1、打开项目后,一次点击Tools>SDK Manager 2、点击SDK Tools标签页 3、选中NDK(Side by Side)和CMake复选框 4、点击OK 此时系统会显示一个对话框,告诉你NDK软件包占用了多少磁盘空间 5、点击OK 6、安装完成后,点击finish 7、您的项目会同步build文件并执行构建,修改构建过程中所有的错误 如果您想要使用SDK管理器未包含的CMak
转载
2023-08-06 15:08:41
466阅读
前言 在Linux系统如Ubuntu下做C语言编程常见的操作是:写好代码,然后使用gcc指令对程序预处理-编译-汇编-链接(其实只用一条指令:gcc -o)。这样的方法只适合单文件无文件组织的简单工程。当工程中代码文件增加且拥有组织结构之后,无可避免就需要去写makefile。本人之前写makefile,头皮发麻,如今赶紧转正,投向Cmake。 Cmake可以根据工程中CMakeLists.
转载
2024-03-26 13:06:27
136阅读
在学习cocos2dx时,其底层就用到了OpenGL,因此,想要能够精通cocos2dx,还是需要了解OpenGL的。本着这个目的,开始搭建OpenGL的环境,并进行学习。OpenGL环境的搭建相对比较简单,这里就简单概述一下。1. 下载glut库glut库地址为:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zipgl
一、简介 在 Android Studio 2.2 以上的版本,推荐使用 CMake 来编译工程里的 C/C++ 代码(包括 JNI 部分)。 一般来言,我们只需要关注和编写 CMakeLists.txt 即可,至于 CMake 如何编译,以及使用的什么样的配置选项是不怎么关心的(会有一系列默认的配置)。不过,如果你需要更改或者定制化一些编译的
转载
2023-07-25 20:13:36
39阅读
1使用步骤:(1)创建安卓工程,拷贝依赖so库/头文件/*.pc到工程目录(这里不详细介绍)(2)CmakeLists.txt 配置a)因为要使用pkg-config.exe工具,所以第一步要先下载pkg-config.exe,然后拷贝到工程目录b) 再设置pkg-config.exe的工具路径,有两种方式设置PKG_CONFIG环境变量或者设置 PKG_CONFIG_EXECUTAB
转载
2023-08-01 22:46:33
452阅读
要为您的应用编译和调试原生代码,您需要以下组件:Android 原生开发套件 (NDK):您可以利用这套工具在 Android 应用中使用 C 和 C++ 代码。CMake:一款外部编译工具,可与 Gradle 搭配使用来编译原生库。如果您只计划使用 ndk-build,则不需要此组件。LLDB:Android Studio 用于调试原生代码的调试程序。默认情况下,LLDB 将与 Android
转载
2023-07-25 20:11:18
215阅读