CMake Overview

2024-09-04 21:48
文章标签 cmake overview

本文主要是介绍CMake Overview,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Reference

  • CMake Tutorial

CMakeList.txt

对于每个project,需要在目录里有一个CMakeList.txt文件。

Command

这个文件由一系列的命令组成,每个命令的形式为:

command(args...)

command是命令的名字,不区分大小写;args是命令的参数,而各个参数以空格分割。——如果参数中包括空格,则用双引号括起来。

按照这些命令在txt中出现的顺序执行。

变量

变量可以是字符串,也可以是字符串列表。

语法:

${VAR}

如果变量的值是多个参数,则用set命令。比如下面的命令就是把 a b c 赋值给Foo这个变量:

set(Foo a b c)

此时,command(${Foo}) 就等价于 command(a b c)。

如果要作为一个参数传递,则需要添加双引号。如:command(“${Foo}”) 就等价于 command(“a b c”)。

环境变量

CMake可以直接引用环境变量:$ENV{VAR}

Hello World

一个c文件,生成可执行文件

project(Hello)
add_executable(Hello Hello.c)

如果要有多个c文件生成可执行文件,则如下:

add_executable(Hello Hello.c File2.c File3.c File4.c)

注释

“#”开头的一样视为注释。

运行CMake

需要两个目录:

  • 源代码目录:源代码,以及CMakeList.txt
  • binary目录:放生成的目标文件、库文件,以及可执行文件。

通常情况下,CMake不会写任何文件到源代码目录中,而是生成在binary目录中。——当然,也可以把这两个目录设置为同一个目录,即为insource build。对应的就是out-of-source build。

in source build

直接cd到源代码目录,并运行:

cmake .

out-of-source build

在binary目录下面,执行cmake命令,比如:

cmake ../src

cmake

$ cmake --help
Usagecmake [options] <path-to-source>cmake [options] <path-to-existing-build>Specify a source directory to (re-)generate a build system for it in the
current working directory.  Specify an existing build directory to
re-generate its build system.

静态库&可执行文件

project(sha1test)add_library(sha1 STATIC sha1/sha1.c)add_executable(sha1test main.cpp)target_link_libraries(sha1test sha1)

这篇关于CMake Overview的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137128

相关文章

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

RabbitMQ练习(AMQP 0-9-1 Overview)

1、What is AMQP 0-9-1 AMQP 0-9-1(高级消息队列协议)是一种网络协议,它允许遵从该协议的客户端(Publisher或者Consumer)应用程序与遵从该协议的消息中间件代理(Broker,如RabbitMQ)进行通信。 AMQP 0-9-1模型的核心概念包括消息发布者(producers/publisher)、消息(messages)、交换机(exchanges)、

Cmake之3.0版本重要特性及用法实例(十三)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧

ubuntu通过apt的方式更新cmake到最新版(ppa)

添加签名密钥 wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add - 将存储库添加到您的源列表并进行更新 稳定版 sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic ma

Windows下使用cmake编译OpenCV

Windows下使用cmake编译OpenCV cmake下载OpenCV下载编译OpenCV cmake下载 下载地址:https://cmake.org/download/ 下载完成,点击选择路径安装即可 OpenCV下载 下载地址:https://github.com/opencv/opencv/releases/tag/4.8.1因为我们是编译OpenCV,下图选择

gcc make cmake例程

main.cpp文件: #include <iostream>#include "utils.h"int main(void) {int a = 1;int b = 2;int c = AddFunc(a, b);std::cout<< c <<std::endl;return 0;} utils.h文件: #pragma onceint AddFunc(int a, int b);

Linux cmake使用笔记

CMake: All problems in computer science can be solved by another level of indirection. cmake会根据cmake-language编写的 CMakeLists.txt 或.cmake后缀文件编译自动生成Makefile CMake使用流程: 在 linux 平台下使用 CMake 生成 Makefile

Cmake note

cmake 指定交叉编译工具 指定install安装目录 $CC=arm-linux-uclibcgnueabi-gcc cmake -DCMAKE_INSTALL_PREFIX=./output . $make $make install 删除camke cache文件: find . -iname ‘cmake’ -not -name CMakeLists.txt -exec rm -rf

记录工作中cmake的使用

5.externalsrc目录下的库引用同级库时,需要修改本库的cmakefile,添加目标库的连接 target_link_libraries(Print ${QT_LIBRARIES} Model DataBusinessManager Utilities printer SettingCache) 14.去除调试窗口 #去除控制台 if(MSVC)     set_target_pr

简单的C++ CMake构建程序

简单版本: cmake_minimum_required(VERSION 3.15)project(testP)include_directories(${PROJECT_SOURCE_DIR}/inc)add_executable(${PROJECT_NAME}src/main.cppinc/hello.h) 进阶版本: cmake_minimum_required(VERSIO