Cmake+Kconfig项目构建

Cmake+Kconfig项目构建

---------------------------------------------------------------------------------------手动分割线--------------------------------------------------------------------------------
本文章参考了以下文章:

---------------------------------------------------------------------------------------手动分割线--------------------------------------------------------------------------------

---------------------------------------------------------------------------------------文章开始--------------------------------------------------------------------------------

一、引言

CMake和Kconfig是两个在软件开发领域中广泛使用的工具,它们提供了强大的功能来帮助开发人员管理和构建他们的项目。本文将介绍CMake和Kconfig的基本概念、优势,以及如何将它们结合起来实现高效的项目构建。

二、介绍

什么是CMake和Kconfig?
CMake是一个跨平台的开源构建系统,它使用类似于编程语言的配置文件来定义项目的构建过程。通过CMake,开发人员可以方便地管理项目的目录结构、依赖关系和构建选项,从而实现跨平台的项目构建。

Kconfig是一个用于项目配置的工具,它提供了一种简单而灵活的方式来定义项目的配置选项和特性。通过Kconfig,开发人员可以轻松地定义和管理项目的各种配置选项,使项目具有更高的可配置性和灵活性。

CMake与Kconfig的优势
CMake和Kconfig具有许多优势,使它们成为开发人员首选的项目构建和配置工具之一:

跨平台性:CMake和Kconfig都是跨平台的工具,可以在各种操作系统和硬件平台上使用。
灵活性:CMake和Kconfig提供了灵活的配置选项,使开发人员能够根据项目的需求自定义构建和配置过程。
可扩展性:CMake和Kconfig都支持插件和扩展,可以轻松地集成其他工具和功能,满足不同项目的需求。
社区支持:CMake和Kconfig拥有庞大的用户社区和活跃的开发者社区,提供了丰富的文档、教程和支持资源。
CMake在项目构建中的应用
CMake在项目构建中发挥着重要的作用,它提供了丰富的功能和工具,帮助开发人员管理和构建复杂的项目结构和依赖关系。以下是一些CMake在项目构建中的常见应用:

定义项目结构:通过CMakeLists.txt文件,开发人员可以定义项目的目录结构和源文件布局,使项目的组织更加清晰和可维护。
管理依赖关系:CMake可以自动查找和管理项目的依赖关系,包括第三方库、外部工具和系统资源,从而简化了项目的构建和部署过程。
配置构建选项:CMake允许开发人员根据项目的需求定义和配置构建选项,例如编译器选项、编译器标志和目标平台,以实现定制化的构建过程。
跨平台支持:CMake提供了跨平台的构建功能,可以在各种操作系统和编译器下生成相同的构建结果,从而确保项目的可移植性和兼容性。
Kconfig在项目配置中的应用
Kconfig主要用于定义项目的配置选项和特性,它提供了一种简单而灵活的方式来实现项目的可配置性和灵活性。以下是一些Kconfig在项目配置中的常见应用:

定义配置选项:通过Kconfig文件,开发人员可以定义项目的配置选项和特性,例如功能开关、模块选择和编译选项,以满足不同用户和场景的需求。
生成配置头文件:Kconfig可以自动生成配置头文件,其中包含了项目的配置选项和宏定义,方便开发人员在代码中使用。
支持条件配置:Kconfig支持条件配置,可以根据条件和约束来控制配置选项的可见性和可用性,从而实现更灵活和可控制的配置过程。
集成外部配置:Kconfig可以集成外部配置和环境变量,例如系统配置文件、用户配置文件和默认配置文件,以实现与外部系统和环境的无缝集成。
结合CMake与Kconfig的项目构建实践
将CMake与Kconfig结合起来,可以实现对项目的完整管理和配置

三、ck构建工具的使用

ck项目界面
Cmake配置使用分为两种:
递归目录: list_template() 模块目录: module_template() 两个函数的参数都是依赖对应的宏,如果该宏存在,则该部分的cmake执行,可以不输入参数,一定会执行

windows下:
进入到cd .\project\template1\路径下

windows配置:.\ck_script.bat cn或者.\ck_script.bat config

windows构建:.\ck_script.bat b或者.\ck_script.bat build

windows编译:.\ck_script.bat m或者.\ck_script.bat make

windows清除:.\ck_script.bat cl或者.\ck_script.bat clean

windows自动配置、构建、编译:.\ck_script.bat a或者.\ck_script.bat auto

Linux下:
进入到cd .\project\template1\路径下

Linux配置:.\ck_script.sh cn或者.\ck_script.sh config

Linux构建:.\ck_script.sh b或者.\ck_script.sh build

Linux编译:.\ck_script.sh m或者.\ck_script.sh make

Linux清除:.\ck_script.sh cl或者.\ck_script.sh clean

Linux自动配置、构建、编译:.\ck_script.sh a或者.\ck_script.sh auto

四、api说明

函数
print_paths()
这个函数用于输出当前源路径和当前构建路径。

list_template([temp_arg])
非模块的构建模板函数。参数为相关的Kconfig配置的宏定义依赖。

例如list_template(MOD1_ENABLE)表示如果定义了MOD1_ENABLE该路径中的的所有源文件、汇编文件、头文件、静态库都会参与构建,同时会自动搜索下一级目录的CMakeLists.txt加入构建过程;没有定义则不会参与构建。

module_template([temp_arg])
模块的构建模板函数。参数为相关的Kconfig配置的宏定义依赖。

例如module_template(MOD1_ENABLE)表示如果定义了MOD1_ENABLE该路径下(会递归搜索)的所有源文件、汇编文件、头文件、静态库都会参与构建;没有定义则不会参与构建。

find_current_source_file([output_variable])
在当前目录查找源文件,并将结果输出在 output_variable 变量中。

find_recurse_source_file([output_variable])
在当前目录及其子目录递归查找源文件,并将结果输出在 output_variable 变量中。

add_some_source_file(file1 [file2 …])
向项目中添加特定的源文件。

find_current_asm_file([output_variable])
在当前目录查找汇编文件,并将结果输出在 output_variable 变量中。

find_recurse_asm_file([output_variable])
在当前目录及其子目录递归查找汇编文件,并将结果输出在 output_variable 变量中。

add_some_asm_file(file1 [file2 …])
向项目中添加特定的汇编文件。

find_current_header_dir([output_variable])
在当前目录查找头文件,并将结果输出在 output_variable 变量中。

find_recurse_header_dir([output_variable])
在当前目录及其子目录递归查找头文件,并将结果输出在 output_variable 变量中。

add_some_header_dir(dir1 [dir2 …])
向项目中添加特定的头文件路径。

find_current_library_file([output_variable])
在当前目录查找静态库,并将结果输出在 output_variable 变量中。

find_recurse_library_file([output_variable])
在当前目录及其子目录递归查找静态库,并将结果输出在 output_variable 变量中。

add_some_library_file(file1 [file2 …])
向项目中添加特定的静态库文件。

set_external_path(PATH BINARY_NAME)
添加外部路径,并指定与之对应的二进制目录。

find_cmakelists_current_dir([exclude_folders])
查找当前目录下一级的所有构建文件,并添加到构建路径中。

本文对应的项目:
cmake-kconfig-build-project
----------------------------------------------------------------------------------到这里就结束了-------------------------------------------------------------------------------

时间流逝、年龄增长,是自己的磨炼、对知识技术的应用,还有那不变的一颗对嵌入式热爱的心!
在这里插入图片描述

到这里就结束了,希望大家点赞o( ̄▽ ̄)d、关注(o)/~、评论(▽)!

  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是使用CMake和VSCode进行项目配置和开发的步骤: 1. 首先,确保已经安装了CMake和VSCode。可以使用以下命令来检查它们的安装情况: ```shell cmake --version code --version ``` 2. 打开VSCode,并安装以下插件:C/C++、CMakeCMake Tools。可以在VSCode的扩展商店中搜索并安装这些插件。 3. 创建一个新的文件夹作为你的项目文件夹,并在该文件夹中创建一个CMakeLists.txt文件。这个文件将用于配置你的项目。 4. 在CMakeLists.txt文件中,编写CMake的配置指令。例如,你可以指定项目的名称、源文件、编译选项等。以下是一个简单的示例: ```cmake cmake_minimum_required(VERSION 3.10) project(MyProject) set(CMAKE_CXX_STANDARD 11) add_executable(MyProject main.cpp) ``` 5. 在VSCode中打开你的项目文件夹。然后,点击左侧的“CMake”图标,它将打开一个侧边栏,显示CMake工具的选项。 6. 在CMake工具的侧边栏中,点击“Configure”按钮。它将提示你选择一个工具链,例如GCC或Clang。选择你想要使用的工具链,并等待配置过程完成。 7. 配置完成后,点击“Build”按钮来构建你的项目构建过程将在终端中显示,并生成可执行文件。 8. 如果构建成功,你可以点击“Run”按钮来运行你的项目。它将在终端中显示程序的输出结果。 9. 在开发过程中,你可以使用VSCode的调试功能来调试你的项目。点击左侧的“调试”图标,然后点击“启动调试”按钮。它将在VSCode中启动一个调试会话,并允许你设置断点、单步执行等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhuzhu、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值