当前位置: 首页 > news >正文

RK3568 cmake编译

一.简介

CMake是开源、跨平台的构建工具,可以让我们通过编写简单的配置文件去生成本地的Makefile,这个配置文件是独立于运行平台和编译器的,这样就不用亲自去编写Makefile了,而且配置文件可以直接拿到其它平台上使用,无需修改,非常方便。

二.Cmake安装命令

sudo apt install cmake
cmake -version

三.Cmake编译

一般把CMakeLists.txt文件放在工程目录下,使用时,先创建一个叫build的文件夹(这个并非必须,因为cmake命令指向CMakeLists.txt所在的目录,例如cmake . ., 表示CMakeLists.txt在当前目录的上一级目录。cmake后会生成很多编译的中间文件以及makefile文件,所以一般建议新建一个新的目录,专门用来编译),然后执行下列操作:

cd build
cmake . .
make

其中cmake . . 在build里生成Makefile,make根据生成makefile文件,编译程序,make应当在有Makefile的目录下,根据Makefile生成可执行程序或共享库。

四.动态库和静态库的编译控制

src目录下的CMakeLists.txt:

# 寻找该目录下所有的源代码文件并将列表存储在SRC_LIST中
aux_source_directory(. SRC_LIST)# 指定库文件输出的存放路径
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)# 生成静态库文件
add_library(swap_lib STATIC ${SRC_LIST})

项目主目录的CMakeLists.txt:

# 指定CMake的最小版本要求
cmake_minimum_required(VERSION 3.0)# 定义工程名称
project(SWAP)# 设置编译参数
add_compile_options(-Wall -std=c++11)# 添加头文件搜索路径
include_directories(include)# 添加src子目录
add_subdirectory(src)# 指定可执行文件输出的存放路径
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)# 生成可执行文件
add_executable(swap_cmake main.cpp)# 为可执行文件添加需要链接的库文件
target_link_libraries(swap_cmake swap_lib)

http://www.lryc.cn/news/123898.html

相关文章:

  • 详细安装配置django
  • HTTP之cookie基础学习
  • 观察者模式和发布订阅模式
  • 利用ViewModel和LiveData进行数据管理
  • 前后端分离------后端创建笔记(05)用户列表查询接口(下)
  • 浅谈GIS和三维GIS的区别?
  • ArcGIS Maps SDK for JavaScript系列之三:在Vue3中使用ArcGIS API加载三维地球
  • 设计列表和超链接
  • rust包跨平台编译,macbook ,linux
  • JAVA集合-List
  • Python|OpenCV-绘制图形和添加文字的方法(2)
  • 使用GO编译wasm文件并在nodejs中使用
  • BM22 比较版本号
  • 【Java】Maven配置文件帮助文档(settings.xml 和 pom.xml)
  • 人脸识别技术应用安全管理规定(试行)
  • FPGA应用学习-----FIFO双口ram解决时钟域+asic样机的时钟选通
  • zabbix案例--zabbix监控Tomcat
  • Electron 应用实现截图并编辑功能
  • 前端= 结构(HTML)+ 样式(CSS)+ 行为(JavaScript)
  • Flink-网络流控及反压剖析
  • redis 和 mongodb 比较
  • Linux 主函数参数介绍
  • 资料分析(三)—— 基期、现期、人口、增长量
  • Java 正则表达式【匹配与分组基本原理】
  • ThreadLocal源码解析
  • RocketMQ 5.1.0 源码详解 | Producer 发送流程
  • 电脑ip地址怎么改 ip地址怎么改到别的城市
  • Android Studio实现列表展示图片
  • 每天一道leetcode:300. 最长递增子序列(动态规划中等)
  • 【无监督】2、MAE | 自监督模型提取的图像特征也很能打!(CVPR2022 Oral)