栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

基于CMake的C项目管理

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于CMake的C项目管理

文章目录
  • 前言
  • 一、CMake是什么?
  • 二、使用步骤
    • 1.安装CMake
    • 2.创建项目
    • 3.使用CMake
    • 4.运行可执行文件(检查成果)
  • 总结


前言

本文介绍了在Ubuntu系统中,使用CMake管理C项目的简单示例,适用于想了解或想初步使用CMake管理C项目的同学。
需要的储备知识:
了解C语言头文件机制


一、CMake是什么?

CMake是一个开源的跨平台自动化构建,并不依赖于特定编译器。笔者常用CMake管理C项目中各种库的引用。

二、使用步骤 1.安装CMake
$ sudo apt update
$ sudo apt install gcc g++ make cmake
2.创建项目

创建项目文件结结构

文件名简介
main.c主程序入口
lib.c函数库源代码
lib.h函数库头文件
CMakeList.txtCMake配置文件

CMakeList.txt 配置文件编辑

project(hello_project LANGUAGES C)						#[[注释:设置项目名和使用的语言]]
cmake_minimum_required(VERSION 3.10)					#[[注释:设置所需最低CMake版本]]
message("Hello, CMake")								    #[[注释:打印信息]]

add_library(includelib inc/lib.h inc/lib.c)			    #[[注释:加入lib库]]
target_include_directories(includelib PUBLIC inc)		#[[注释:加入引用的库所在的目录]]
add_executable(hello_project src/main.c)			    #[[注释:设置执行文件(执行文件可以引用已加入的lib库)]]
target_link_libraries(hello_project PRIVATE includelib)	#[[注释:链接已加入的库到项目, 命名为includelib]]

main.c文件编写
可根据自身需要修改

#include "lib.h"

int main(){
    hello_func();
    return 0;
}

lib.c文件编写
可根据自身需要修改

# include 

void hello_func(){
	printf("Hello World!n");
}

lib.h文件编写
可根据自身需要修改

# include 

void hello_func();
3.使用CMake
# 请在project目录运行如下命令
$ mkdir build
$ cd build
$ cmake ..

结果

Hello, CMake
-- Configuring done
-- Generating done
-- Build files have been written to: /home/a1234/Desktop/prj/project/build

生成可执行文件

# 请在project目录运行如下命令
$ cd build
$ make -j2

结果

[ 25%] Building C object CMakeFiles/includelib.dir/inc/lib.c.o
[ 50%] Linking C static library libincludelib.a
[ 50%] Built target includelib
[ 75%] Building C object CMakeFiles/hello_project.dir/src/main.c.o
[100%] Linking C executable hello_project
[100%] Built target hello_project
4.运行可执行文件(检查成果)


运行可执行文件

# 请在project目录运行如下命令
$ cd build
$ ./hello_project

结果

Hello World!

总结

本文总结了快速使用CMake管理C项目的基础方法,希望对大家有所帮助,若文章中有什么问题、疏漏,或者对文章有一些建议,请在评论区提出。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/976742.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号