VSCode:使用CMakeLists.txt构建C++项目

这篇具有很好参考价值的文章主要介绍了VSCode:使用CMakeLists.txt构建C++项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vscode配置

插件:

  • CMake插件主要功能是CMake语法高亮、自动补全
  • CMake Tools的功能主要是结合VSCode IDE使用CMake这个工具,比如生成CMake项目、构建CMake项目等
  • CMake Tools Helper

CMake工具本身还是要下载到本地,并且配置环境变量。

项目结构

包括6部分:build文件夹、include文件夹、src文件夹、lib文件夹、bin文件夹和CMakeLists.txt。

vscode cmakelist,工具软件,vscode,c++,github

编译

基本配置

首先安装VSCode插件CMake和CMake Tools

新建CMake项目

  • Ctrl+Shift+p打开VSCode的指令面板,然后输入cmake:q,VSCode会根据输入自动提示,然后选择CMake: Quick Start

vscode cmakelist,工具软件,vscode,c++,github

  • 然后选择适合你的编译器。这里我们选择GCC7.4.0:
    vscode cmakelist,工具软件,vscode,c++,github

  • 然后根据提示输入项目名称:

vscode cmakelist,工具软件,vscode,c++,github

  • 然后选择该项目是创建库还是可执行文件,这里我们选择可执行文件Executable:

vscode cmakelist,工具软件,vscode,c++,github

  • 然后VSCode就会为你生成一个CMake项目。如下所示:
    • build文件夹是cmake指令的输出文件夹
    • 默认生成的CMakeLists.txt文件
    • 默认生成的main.cpp文件
    • 其他的文件夹比如include文件夹、src文件夹、bin文件夹等自己建立就行。
      vscode cmakelist,工具软件,vscode,c++,github

我们可以看到CMakeLists.txt文件中的内容,如下:

project(exer VERSION 0.1.0)    #项目名字和版本

include(CTest)            #包含测试框架,我们可以不用
enable_testing()

add_executable(exer main.cpp)       #添加源文件

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)


将CMakeLists.txt修改如下:

# CMake 最低版本号要求
cmake_minimum_required(VERSION 3.0.0)
 
# 项目信息
project(test1 VERSION 0.1.0)
 
#设置exe输出目录
set(EXECUTABLE_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/bin")  
 
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)
 
# 指定生成目标
add_executable(Demo ${DIR_SRCS})
#add_executable(${PROJECT_NAME} main.cpp)

在“test1[test1.exe]”上,鼠标右键弹出菜单,选择调试或debug。
vscode cmakelist,工具软件,vscode,c++,github

编译

两种方法:

  • 点击底部的Build
    vscode cmakelist,工具软件,vscode,c++,github

  • 打开命令板(Ctrl+Shift+P)并运行CMake:Build(输入cmake后VSCode会帮你列出所有支持的命令):

vscode cmakelist,工具软件,vscode,c++,github

  • 或者直接按下快捷键F7。

设置文件c_cpp_properties.json

我们按住 ctrl + shift + p,搜索C/C++
vscode cmakelist,工具软件,vscode,c++,github
我们配置一下编译器路径
vscode cmakelist,工具软件,vscode,c++,github
更改IntelliSense模式:
vscode cmakelist,工具软件,vscode,c++,github
然后关闭这个界面,我们会发现CppProject文件夹中多了一个.vscode文件夹,有一个c_cpp_properties.json

调试

方法一

设置好断点,按下快捷键 ctrl + shift + p , 键入: cmake:debug , 程序将执行,并停在断点所在位置。

或者直接按下快捷键ctrl+F5。

方法二(不看)

首先在源码中打上断点:
vscode cmakelist,工具软件,vscode,c++,github
然后配置调试环境:

vscode cmakelist,工具软件,vscode,c++,github
这个时候资源管理器下就会生成.vscode文件夹,下面有个launch.json文件
vscode cmakelist,工具软件,vscode,c++,github
vscode cmakelist,工具软件,vscode,c++,github
把下面一句:

"program": "输入程序名称,例如 ${workspaceFolder}/a.exe",

改成:(根据CMakeLists.txt文件内容,将会在build文件夹下生成result可执行文件)

"program": "${workspaceFolder}/build/result",

然后就可以加断点调试了。

代码的中文乱码问题

https://blog.csdn.net/m0_46577050/article/details/127604039

关于

选择编译的版本

  • 编译的一共有4个Debug 、Release 、MinRelSize 、RelWithDebInfo。区别在于:
    • Debug:禁用优化并包括调试信息。
    • Release:包括优化,但没有调试信息。
    • MinRelSize :优化尺寸。无调试信息。
    • RelWithDebInfo:优化速度,包括调试信息。
    • 更改方法:要选择变体,请打开命令面板(Ctrl+Shift+P)运行CMake:select var。或者点击下面深色

vscode cmakelist,工具软件,vscode,c++,github

切换编译工具链

  • 你可以通过以下按钮更换套件工具链即编译器
    vscode cmakelist,工具软件,vscode,c++,github

  • 或者是可以通过ctrl+shifl+p,输入CMake:Select a Kit

  • 如果想重新配置本地的编译工具链的安装位置,那么可以打开如下配置文章来源地址https://www.toymoban.com/news/detail-779786.html

CMake:Edit user-local CMake kits

参考

  • https://blog.csdn.net/jiasike/article/details/107474368
  • https://blog.csdn.net/qq_62094479/article/details/127816434
  • https://blog.csdn.net/hhy321/article/details/120602770

到了这里,关于VSCode:使用CMakeLists.txt构建C++项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CMakeLists.txt编写简单介绍:CMakeLists.txt同时编译.cpp和.cu

    不想付费的同学可以参考本人知乎添加链接描述,关于CMakeLists.txt的相关介绍,这里不赘诉,本人的出发点是借助于CMakeLists.txt掌握基本的C++构建项目流程,下面是本人根据网络资料以及个人实践掌握的资料。 下图是一个使用CUDA实现hello world的项目,一般来说,一个标准的C

    2024年04月10日
    浏览(31)
  • 【CMake 入门与进阶(3)】 CMakeLists.txt 语法规则基础及部分常用指令(附使用代码)

            在上两篇中,笔者通过几个简单地示例向大家演示了 cmake 的使用方法,由此可知,cmake 的使用方法其实还是非常简单的,重点在于编写 CMakeLists.txt,CMakeLists.txt 的语法规则也简单,并没有 Makefile 的语法规则那么复杂难以理解!本文我们来学习CMakeLists.txt 的语法规

    2024年02月11日
    浏览(36)
  • cmake中多级CMakeLists.txt调用

      在c/c++工程开发中,往往会涉及多级CMakeLists.txt的调用,并且调用方式错综复杂,主要有以下两种方式: 子目录中的CMakeLists.txt 独立生成目标 ,不作为主目标生成过程主的依赖存在,与主目标并无任何关系。 子目录中的CMakeLists.txt 作为主目标的依赖源文件 ,不单独生成

    2024年02月02日
    浏览(34)
  • ROS功能包目录下CMakeLists.txt

    CMake基础教程(24)add_executable生成目标可执行文件 CMake中add_executable的使用 CMake中的add_executable命令用于使用指定的源文件向项目(project)添加可执行文件,其格式如下: 这里我们用到 Normal Executables这种用法,Normal Executables:添加一个名为的可执行目标(executable target),该目标将

    2024年02月11日
    浏览(29)
  • 【gcc, cmake, eigen, opencv,ubuntu】五.CMakeLists.txt编写

    1.CMakeLists.txt模板 一个使用opencv 的 CMakeLists.txt 对应的目录: 2.设置编程语言版本 3.设置编译类型Debug,Release 4.设置获取文件列表 MATH_LIB_SRC 指示:找到的math目录下的 c文件 5.添加include目录 表示在src/include/目录中寻找头文件 include_directories(src/include) 6.配置编译选项 add_compile_

    2024年02月09日
    浏览(32)
  • Android JNI配置CMakeLists.txt修改.cpp在logcat打印日志

    Android JNI配置CMakeLists.txt修改.cpp在logcat打印日志 C/C++代码里面常用的printf没法在Android 的logcat输出显示。需要特别配置C++才能显示在logcat里面。 (1)CMakeLists.txt定义: (2).cpp中: Android添加C++/CPP项目代码(2)_zhangphil的博客-CSDN博客 基于Windows平台,Android NDK(JNI)开发技术》

    2024年02月03日
    浏览(38)
  • ncnn - ubuntu调用vulkan加速ncnn是的CMakeLists.txt和bashrc配置

    ncnn使用vulkan来加速时,需要先安装vulkan,然后再使用vulkan来编译ncnn,最后才是使用编译好的ncnn来推理模型。。 这里的vulkan再Ubuntu中通常是直接解压安装,然后配置环境变量如下: export VULKAN_SDK=/home/fwq/softs/1.2.182.0/x86_64 1.2.182.0 是我使用的vulkan版本。。 配置完上述路径后,

    2024年01月23日
    浏览(34)
  • CMake Error at CMakeLists.txt: (FIND_PACKAGE)找不到ncnn包的解决方法

    demo指路:https://github.com/EdVince/Stable-Diffusion-NCNN 在 Linux端 使用 cmake 编译文件时, 执行 cmake .. 命令,报错: 拉取 ncnn 的代码库(包括submodule)后没有 build and Install ,所以 cmake 时找不到对应的包,只需要让它找到对应的包即可,分为2步: 生成对应的cmake文件( ncnnConfig.cmake

    2024年02月11日
    浏览(129)
  • CMake Error: The source directory “XXX“ does not appear to contain CMakeLists.txt

    正常CMakeLists.txt文件是在项目根目录下,而我们在项目的build文件夹中进行cmake,导致找不到文件,解决方法,命令行后加两个点表示上级目录,关键就是这两个点:

    2024年02月04日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包