vscode + CMake 构建C语言项目

news/2024/11/29 2:43:51/

文章目录

      • 1. 所需工具
      • 2. 配置
        • 1. 编写顶级目录下的 CMakeLists.txt
        • 2. 编写子目录 src 里的 CMakeLists.txt
        • 3. 添加测试文件
        • 4. 开始构建

1. 所需工具

  • Visual Stduio Code(vscode)

  • CMake

    • 简介: CMake 是一个跨平台的 构建工具,用于 自动 生成项目构建文件。它支持多种操作系统和构建系统,并提供简洁的语法和命令来定义项目的构建过程、源代码文件和依赖关系。CMake 可以根据 CMakeLists.txt 文件自动生成适合不同构建系统的构建文件,并支持多配置构建。

    • 下载官网:点击跳转
      Snipaste_2023-05-29_22-50-44.png

  • vscode 插件:CMake,CMakeTools

2. 配置

文件架构如下:

tempCMakeLists.txt\---srcCMakeLists.txthello.c

1. 编写顶级目录下的 CMakeLists.txt

# 指明项目所需 cmake 的最低版本
cmake_minimum_required(VERSION 3.25)# 项目名称 + 构建语言(这里为C语言)
project(temp C)# 添加的子目录构建规则
add_subdirectory(src)

2. 编写子目录 src 里的 CMakeLists.txt

# 所需 CMake 的最低版本
cmake_minimum_required(VERSION 3.25)# 设置项目名称
project(temp C)# 添加可执行文件
add_executable(hello hello.c)# 为目标(XX)设置属性(输出路径)
# PROPERTIES:后接目标对应属性
# RUNTIME_OUTPUT_DIRECTORY:属性,表示源文件编译后输出的文件存放的目录
# CMAKE_BINARY_DIR/bin:上面属性的值,这里表示构建目录(build目录,CMake 自动生成的目录)下的 bin 文件夹
set_target_properties(hello PROPERTIESRUNTIME_OUTPUT_DIRECTORY CMAKE_BINARY_DIR/bin
)

3. 添加测试文件

#include <stdio.h>int main () {printf("Hello, world!\n");return 0;
}

4. 开始构建

  • Ctrl + Shift + P 打开控制面板输入:CMake: Cofigure,然后点击下拉列表中的这一项
    Snipaste_2023-05-29_23-09-01.png

  • 随后出现一个新的下拉列表,在其中选择你的 gcc(编译器)版本,如果找不到就先点击 “Scan for kits…” 那个,然后重复这两步操作
    Snipaste_2023-05-29_23-09-54.png

  • 点击状态栏(最下方)里的 “Build”,开始架构
    Snipaste_2023-05-29_23-10-40.png

  • 架构成功
    Snipaste_2023-05-29_23-11-02.png

  • 然后可以点击状态栏里的 “debug” 和 “run” 图标,进行“调试”或者“运行”,也可以用快捷键:Ctrl + F 5 F_5 F5(调试),Shift + F 5 F_5 F5(运行)
    Snipaste_2023-05-29_23-11-17.png

  • 运行结果会显示在 vscode 下方的终端窗口中
    Snipaste_2023-05-29_23-11-38.png

  • 调试结果
    Snipaste_2023-05-29_23-12-02.png


http://www.ppmy.cn/news/104969.html

相关文章

jdbc的入门

JDBC的基本介绍 JDBC即Java DataBase Connectivity&#xff08;Java数据库连接&#xff09;&#xff0c;是Java语言访问数据库的一种标准方法。JDBC提供了一组API&#xff0c;用于连接不同类型的数据库并执行SQL语句&#xff0c;以便与数据库进行交互。 JDBC API包括两部分&a…

华硕天选4R FA617原装Windows11原厂预装系统工厂模式恢复安装带 ASUSRecevory 一键还原22H2版本

华硕天选4R FA617X原装Windows11原厂预装系统工厂模式恢复安装带ASUSRecevory一键还原 文件地址&#xff1a;https://pan.baidu.com/s/1Pq09oDzmFI6hXVdf8Vqjqw?pwd3fs8 提取码:3fs8 华硕工厂恢复系统 &#xff0c;安装结束后带隐藏分区以及机器所有驱动软件 需准备一个16…

算法基础学习笔记——⑬高斯消元\组合计数\容斥原理

✨博主&#xff1a;命运之光 ✨专栏&#xff1a;算法基础学习 目录 ✨高斯消元 ✨组合计数 &#x1f353;通过预处理逆元的方式求组合数: &#x1f353;Lucas定理: &#x1f353;分解质因数法求组合数&#xff1a; 前言&#xff1a;算法学习笔记记录日常分享&#xff0c;需…

SpringCloud(1)

文章目录 1.认识微服务1.0.学习目标1.1.单体架构1.2.分布式架构1.3.微服务1.4.SpringCloud1.5.总结 1.认识微服务 随着互联网行业的发展&#xff0c;对服务的要求也越来越高&#xff0c;服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢&…

《深入理解计算机系统(CSAPP)》第7章 链接 - 学习笔记

写在前面的话&#xff1a;此系列文章为笔者学习CSAPP时的个人笔记&#xff0c;分享出来与大家学习交流&#xff0c;目录大体与《深入理解计算机系统》书本一致。因是初次预习时写的笔记&#xff0c;在复习回看时发现部分内容存在一些小问题&#xff0c;因时间紧张来不及再次整理…

【技术解决方案】(多级)缓存架构最佳实践

凌晨三点半了&#xff0c;太困了&#xff0c;还差一些&#xff0c;明天补上… 因为自己最近做的项目涉及到了缓存&#xff0c;所以水一篇缓存相关的文章&#xff0c;供大家作为参考&#xff0c;若发现文章有纰漏&#xff0c;希望大家多指正。 缓存涉及到的范围颇广&#xff0c…

关于Dubbo的一些面试题

基础知识 为什么要用 Dubbo&#xff1f; 随着服务化的进一步发展&#xff0c;服务越来越多&#xff0c;服务之间的调用和依赖关系也越来越 复杂&#xff0c;诞生了面向服务的架构体系(SOA)&#xff0c;也因此衍生出了一系列相应的技术&#xff0c; 如对服务提供、服务调用、连接…

Ubuntu20.04安装VMware player16.2.4,不弹出安装界面的问题

1.先在官网上下载VMware player16.2.4进行下载&#xff0c;Ubuntu20.04对VMware player16.2.4进行安装 2.安装完成后&#xff0c;应该会有如图下的弹窗界面&#xff0c;但是我没有 解决方法&#xff1a; 点击Ubuntu的VMware player的程序图标&#xff0c;弹窗报错:"Comma…