首页
学习
活动
专区
圈层
工具
发布

Make和Cmake

Makefile 文件包含了如何构建项目的规则,make 负责解析这些规则并执行必要的命令来编译和链接源代码,生成可执行文件或库。• CMake: 是一个构建系统生成器。...• CMake: 提供了更高级的抽象和更丰富的功能集,如条件语句、循环、函数定义等,这使得 CMakeLists.txt 文件可以编写得更加灵活和模块化。4....• CMake: 提供了内置的机制来处理依赖关系,包括自动检测和配置外部库。...下面我将详细解释make命令的使用和功能。cmake:CMake是一个开源的、跨平台的自动化构建系统,用来管理软件构建过程。...通过这个选项,你可以在需要时构建和运行测试,而在不需要时避免这些额外的构建步骤,节省时间和资源。通过这种方式,CMake 允许你以一种灵活的方式控制构建过程,适应不同的构建需求和环境。

49510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于cmake为项目自动获取git分支tag的版本号和commitid

    引言   在项目构建的时候,我们经常会希望能够将git提交的分支信息和提交号(commitid)以及当前版本发布的tag信息作为版本号自动构建到程序里面,以便后续能够快速定位所运行的程序所定影的git源码的版本...,从而快速发现和定位问题。  ...实现过程 2.1 工程目录规划   如下图:   其中有c语言源码都放在工程根目录下面,当然,对于比较大型的工程,可以对源码目录进行更细地拆分和规划,本demo只有一个test.c和config.h的c...源码文件,因此源码目录从简;创建一个cmake目录,用来存放自定义的cmake模块文件;创建一个build目录,用来存放cmake运行所产生的输出文件。...endif() # 获取git的分支名 execute_process( COMMAND ${GIT_EXECUTABLE

    89210

    披着CLion的外衣实则在讲CMake

    CLion 配置 安装和基础设置 至于 CLion 安装和基础设置,网上教程一大把,而且不是学习重点,根据自己需求配置即可。...CMake 的使用与实战 经过上述文字和图片讲解,我们很自然的想到,整个 CLion 运行 C++ 代码其实就是在运行 cmake 和 makefile(或 build.ninja),第二个过程我们参与不了...CMakeLists.txt 文件的目录 CMAKE_BINARY_DIR :当前 CMake 运行的二进制文件目录,通常和 PROJECT_BINARY_DIR 是同一个目录 CMAKE_SOURCE_DIR...:当前 CMake 运行的源文件目录,通常和 PROJECT_SOURCE_DIR 是同一个目录 CMAKE_C_STANDARD :指定 C 语言的标准版本 CMAKE_CXX_STANDARD :...execute_process:用于执行外部的命令,如下的示例代码是执行 git clone 命令,执行命令的工作目录在 ${CMAKE_BINARY_DIR}/deps/: execute_process

    6.5K31

    CMake使用教程和原理

    其实除了CMake构建系统之外,CMake已经发展出一系列开发工具:CMake,CTest,CPack和CDash。 - CMake是负责构建软件的构建工具。...- 其他还有Doxygen和BullseyeCoverage 1.1 CMake的前世今生 项目的通常做法是为Unix平台提供配置脚本和Makefile,为Windows提供Visual Studio项目文件...1.2 Cmake的使命 创建和源代码库隔离的构建目录,分离开发和构建目录。易于进行源代码版本控制。 CMake是具有管理依赖项,依赖之间的关系。...CMake提供一些易于操作的API,向开发人员屏蔽平台细节。 二、CMake怎么解决问题 CMake有两个阶段,配置和生成阶段。...这些关键类 是抽象类,CMake的跨平台实现依赖于这些类的平台实现类。 image.png 2.3 依赖管理和更新构建 CMake在使用IDE的平台不生成依赖,这些依赖由IDE自己完成。

    15.3K297

    OpenHarmony开源三方库的cmake在IDE上直接引用的问题

    模式可以通过顶层CMakeLists.txt调用子目录CMakeLists.txt的方式,这样就可以直接引用到第三方库的头文件路径和库三、target_link_libraries模式在库链接时直接链接第三方库背景...DevEco Studio的native工程的C/C++部分是使用的cmake脚本来构建,开源社区上有很多C/C++三方库也是使用cmake来编译构建,这些三方库我们是否可以直接采用add_subdirectory...来指定,如下图所示图中xxx代表的就是三方库安装的路径二、依赖库必须已存在,并且是通过install安装的通过install安装,除了有lib和incldue文件,还有提供给find_package使用的文件...CMakeLists.txt中使用execute_process来调用shell命令,先把依赖库编译并安装完成三方库引用的建议在native工程中,三方库的使用建议都采用target_link_libraries...模式来引用写在最后如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:点赞,转发,有你们的 『点赞和评论』,才是我创造的动力;关注小编,同时可以期待后续文章ing,不定期分享原创知识;想要获取更多完整鸿蒙最新学习知识点

    37210

    【CMake】CMake 引入 ( Android NDK 构建脚本 | CMake 命令手册 )

    文章目录 一、Android NDK 构建脚本 二、CMake 构建脚本示例 三、CMake 命令手册 1、CMake 脚本命令 2、CMake 工程命令 该系列博客的应用场景是 Android Studio...官网 https://developer.android.google.cn/ndk/guides ; 方式一 : 使用 ndk-build 脚本 , 包括 Android.mk 和 Application.mk...NDK 的 ndk-bundle\platforms\android-29\arch-arm\usr\lib\liblog.so # 不同的 Android 版本号 和 CPU 架构 需要到对应的目录中查找...endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach...构建脚本 CMakeLists.txt 中使用到的所有 CMake 命令都来自上述脚本命令和工程命令 , 如 add_library , find_library , target_link_libraries

    4.5K01

    CMake学习笔记(二)——CMake语法

    系统版本,如2.6.22 CMAKE_SYSTEM_PROCESSOR 处理器名称,如i686 UNIX 在所有的类UNIX平台为TRUE,包括OS X和cygwin WIN32 在所有的win32平台为...内部构建方法中,cmake生成的中间文件和可执行文件都会存放在项目目录中;外部构建方法中,中间文件与可执行文件都存放在build目录中。 笔者强烈建议使用外部构建方法。...如果cmake参数和CMakeLists.txt文件中都不指定该值的话,则该值为默认的/usr/local。 4....; [binary_dir]:中间二进制与目标二进制存放路径; [EXECLUDE_FROM_ALL]:将这个目录从编译过程中排除; 这个指令用于向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制存放的位置...[COMPONENT ] [RENAME ] [OPTIONAL]) 使用方法基本和上述目标文件指令的INSTALL相同,唯一别的不同是,安装非目标文件之后的权限为

    6.4K100

    CMake简介及使用实例

    CMake支援 in-place建构(二进档和源代码在同一个目录树中)和 out-of-place建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。...虽然名字中含有“make”,但是CMake和Unix上常见的“make”构建工具是分开的,而且更为高阶。...命令 命令语法: execute_process(COMMAND [args1...]]...使用范例:execute_process(COMMAND ls) file命令 命令简述:此命令提供了丰富的文件和目录的相关操作(这里仅说一下比较常用的) 使用范例: #目录的遍历 # GLOB用于产生一个文件...} ${CMAKE_CURRENT_LIST_DIR}/*.h) 4.CMake常用环境变量 UNIX 如果为真,表示为 UNIX-like的系统,包括 Apple OS X和 CygWinWIN32

    3K21

    初识CMake

    初识CMake CMake 是一个 跨平台的 项目构建工具,CMake不过就是比makefile更高级一些,makefile不仅写起来繁琐,并且不同平台有所差异。...2、我们使用CMake来构建项目,我们需要再CMakeLists.txt文件中编写CMake脚本,使用 cmake CMakeLists.txt文件路径 来对CMake进行构建makefile文件。...CMake安装及使用   安装一个CMake工具,我们需要准备Linux环境,并且使用VSCode远程连接Linux,一般Linux都是自带CMake工具的,如果没有就安装一下CMake。...使用 cmake --version 查看当前CMake版本。   ...但是我们最好指定一下我们使用CMake的版本,因为CMake3.0与CMake3.15在语法层面就有些许差别,我们尽量指定CMake3.15以上版本的使用。

    38210
    领券