插入元素(list(INSERT ...)): list(INSERT MY_LIST 1 "item1.5") # 在位置1插入元素 移除元素(list(REMOVE_ITEM ...)): list(REMOVE_ITEM MY_LIST "item2") 移除指定索引的元素(list(REMOVE_AT ...)): list(REMOVE_AT MY_LIST 1) # 移除索引为1的元素 获取列表长度(list(LENGTH ...)): list...
cmake 指定编译架构 cmake编译命令 1、首先用cmake_minimum_required (VERSION 3.14.1)指定所需cmake的最小版本。 2、project(name CXX C)指定工程名称,这个会影响PROJECT_SOURCE_DIR(第一个project所在的CMakelist.txt所在的文件的目录)的值 3、通用的属性可以放在单独的文件中如ToolChain.cmake,然后可以用inclu...
1.设置可执行文件的输出路径: SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin) 1. 2.静态库 lib 输出路径: set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../bin) 1. 3.动态库输出路径(注意这个放在最后): SET_TARGET_PROPERTIES(dllname PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../...
我们在main.c所在目录下再添加2个文件,testFunc1.c和testFunc1.h。添加完后整体文件结构如下, testFunc1.c如下, /* ** testFunc1.c */#include<stdio.h>#include"testFunc1.h"voidfunc1(intdata){printf("data is %d\n", data); } testFunc1.h如下, /* ** testFunc1.h */#ifndef_TEST_FUNC...
add_library(testSTATICsource1.cppsource2.cpp)# 生成静态库 libtest.a`add_library(testSHAREDsource1.cppsource2.cpp)#生成动态库libtest.so` 动态库有很多坑,特别是 Windows 环境下,初学者自己创建库时,建议使用静态库。但是他人提供的库,大多是作为动态库的,我们之后会讨论如何使用他人的库。以动态库链接的...
但是该样例是基于VS进行编写构建的,而本人日常喜欢CLion进行C/C++开发,于是准备使用cmake重新组织该书籍的样例项目:2DGraphics1中的NimotsuKunBox和drawPixels。当然,这个过程不仅是移植,也是对cmake组织项目一个深入的实践。 对现有样例项目的认识与构建 样例代码结构 在进行cmake迁移前,有必要对现有的VS体系的代码...
3.2 在CMake中引用 3.3 dll动态链接引用 方法一: 加入PATH环境变量 方法二: 直接复制.dll到当前可执行文件所在文件夹 4.测试例程 4.1 代码 4.2 CMake配置和编译 4.2.1 配置 编译报错:找不到OpenCV 4.2.2 编译 4.2.3 运行 运行报错:找不到dll
1、设置CMake的最低版本 cmake_minimum_required(VERSION 3.0.0)#设置cmake最低版本为3.0.0.0 2、定义工程名称,并可指定工程的版本、工程描述、web主页地址、支持的语言(默认情况支持所有语言),如果不需要这些都是可以忽略的,只需要指定出工程名字即可。
1 源码目录下面创建一个编译目录build,用于生成cmake的临时文件和项目文件,放在独立的目录方便清理和查看。 2 进入编译目录build,直接运行cmake .. 使用默认生成项目文件,下图生成的是vs2022的64位项目(文件所在的路径和目录层次不能太深,太深会找不到编译器)。
交叉编译算是每个嵌入式开发者都会经历的一道坎吧,通俗的描述就是搭建Arm板代码编译环境,让代码能够在Arm板子上跑起来。常用到的编译工具为Makefile和CMake,本篇记录下CMake的常用技巧。 入门案例:单个源文件 代码路径:https://gitee.com/LinuxTaoist/DesignMode/tree/master/FactoryMode ...