VScode开发C++简单的步骤、及cmake的使用

参考:https://blog.csdn.net/qq_33973359/article/details/105720511

编译过程:https://blog.csdn.net/qq_30815237/article/details/88948632

vscode c++配置指南:;https://blog.csdn.net/qq_35793285/article/details/100546205

文档:https://code.visualstudio.com/docs/cpp/config-clang-mac

command + shift  +p  打开命令窗口;

编译不同文件夹下的文件:https://blog.csdn.net/qq_34801642/article/details/106419763

c_cpp_properties.json (编译路径和智能提示设置)

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**",
                "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1",
    "/usr/local/include",
    "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.3/include",
    "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include"
            ],
            "defines": [],
            "macFrameworkPath": [
                "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks"
            ],
            "compilerPath": "/usr/bin/clang",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}

***************以下是mac上的操作******************

***常规的多文件编译配置

lauch.json 用于设置调试、运行时的东西;

"version": "0.2.0",
    "configurations": [
      {
        "name": "clang++ - Build and debug active file",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceFolder}/最上层目录和文件之间的文件夹/Seconds",//运行的文件路径,如果是多文件的话,要修改成${workspaceFolder}/文件夹/多文件编译后的文件.
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceFolder}",//相当于文件最上层目录.
        "environment": [],
        "externalConsole": true,
        "MIMode": "lldb",
        "preLaunchTask": "clang++ build active file"//与task.json中label一致,运行这一句代码表示已经调用了task.json的编译功能.这里也可以注释掉,在命令行用命令编译.
      }
    ]

tasks.json 用于设置编译时的东西。

 "tasks": [
        {
            "type": "shell",
            "label": "C/C++: clang++ build active file",  这个是和launch.json中的prelaunch一致的.
            "command": "/usr/bin/clang++", 命令行命令
            "args": [
                "-g",
                "${fileDirname}/first.cpp", 需要编译的文件
                "${fileDirname}/add.cpp",  需要编译的文件
                "-o",
                "${fileDirname}/Seconds"  编译后输出的文件
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ],
    "version": "2.0.0"


command和args两条命令相当于命令行的:/usr/bin/clang++ -g first.cpp add.cpp -o /Users/HaokeMaster/Desktop/VSCODECPP/Seconds

setting.json是工作区设置;

查看includePath路径:clang  -v -E -x c++ -    ,得到/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include

${workspaceFolder},只当前的项目所在总的文件夹,即最上层目录的绝对路径;
${fileDirname}当前目录,当前文件所在的目录;
${fileBasenameNoExtension}当前目录中的文件,在launch.json中指的是编译后的文件.

***cmake进行多文件编译

CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库;

CMakeList.txt 文件中,命令名字是不区分大小写的,而参数和变量是大小写相关的

https://www.cnblogs.com/cv-pr/p/6206921.html

https://www.jianshu.com/p/cb4f8136a265

子目录中的CMakeList.txt; https://blog.csdn.net/ktigerhero3/article/details/70313350

cmake下载:https://cmake.org/download/

在菜单栏Tools选项里选择How to install For Command Line Use,按照提示任选一种配置方法即可.
 

下载cmake,运行;

配置:sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install

检查cmake --version

步骤一:CMakeLists.txt中:

project(MYFIRST),MYFIRST表示项目的名称
add_excutable(myc first.cpp add.cpp) ,myc表示编译后可执行文件的名称,后面的.cpp文件是要编译的文件.

 注意:CMakeLists.txt要和build文件夹在同一级目录,否则不生成makefile文件.

步骤二:command+shift+p   -》选择cmake:configure,会生成build文件夹.

步骤三:cd 到 build文件夹,.执行cmake.. 命令后会检测编译环境、配置完成会生成相关的文件makefiles;

步骤四: 在终端执行make命令.

步骤三和步骤四相当于task.json中的配置;

F5相当于launch.json中的配置.(如果launch.json中配置了prelaunch,就相当于launch.json和task.json一起配置了);

***以下的配置,直接F5就可以完成多文件编译了,若果要添加文件,直接在add——executable()中添加要编译的cpp文件就可以了.

CMakeLists.txt    https://mp.csdn.net/console/editor/html/107976870


#指定cmake的版本
cmake_minimum_required(VERSION 3.17.3)

#输出变量对应的目录
#message(${PROJECT_SOURCE_DIR})
#message(${PROJECT_BINARY_DIR})

#指定项目名称,一般和项目文件夹名称对应,${PROJECT_NAME}就是指YJ
project(YJ)
#源文件目录,把当前工程目录下的 cpp 文件夹下的所有 .cpp赋给DIR_SRCS;  ${DIR_SRCS}代表文件夹下所有的.cpp文件
aux_source_directory(cpp DIR_SRCS)

#头文件目录
#include_directories(./h)

#添加子目录
#add_subdirectory(cpp)

#设置环境变量,编译用到的源文件全部都要放到这里,否则编译能够通过,但是执行的时候会出现各种问题,比如"symbol lookup error xxxxx , undefined symbol"
#注意,下面方式手动添加的话要把子目录的CMakeList.txt删除掉。
set(SDIR Yanjiang.cpp) 
set(SR ${DIR_SRCS})


#添加要编译的可执行文件,生成一个可执行文件。
add_executable(Yanjiang ${SDIR} ${SR})

#生成动态库
#add_library(yanj SHARED ${SR})

#则告诉生成一个静态库文件。
#add_library(yanj ${SR}); 

#更改静态库的名称
#set_target_properties(yanj PROPERTIES OUTPUT_NAME "yanjiang")

#添加可执行文件所需的库,把库文件ku链接到Yanjiang程序。
#target_link_libraries(Yanjiang yj)

 

project(MYF)
add_executable(fir first.cpp add.cpp)

task.json

 

{
    "version": "2.0.0",
    "options":{
        "cwd":"${workspaceFolder}/build"  //这个是build所在的路径
    },
    "tasks": [
       
        {
            "type":"shell",
            "label":"cmake",
            "command":"cmake",
            "args":[
                
            ]
        }, {
            "type":"shell",
            "label":"make",
            "command":"make",
            "args":[
               
            ]
        },
        {
            
            "label":"build",
           "dependsOn":[
               "cmake",
               "make"
           ]
           
        }
    ]
    
}

launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        
        {
            "name": "clang++ - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/fir",//因为这是cmake构建的,所以最后的可执行文件在build文件夹中,fir是编译后的可执行文件;
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",//相当于文件最上层目录.
            "environment": [],
            "externalConsole": true,
            "MIMode": "lldb",
            "preLaunchTask": "build"//这里执行build,实际上是在task.json中执行了cmake  和make两个指令
            // "preLaunchTask": "C/C++: clang++ build active file"
        }
    ]
}

****************以下是windows上的操作****************

VS打开工程,右键工程名称—>属性—>c/c++—>命令行—> /d1 reportAllClassLayout

 

 

 

***命令行编译指令

1.mkdir build      创建build文件夹,build文件必须要和CMakeLists.txt在同一个目录;

2.cd /Users/HaokeMaster/Desktop/VSCODECPP/CMakeLists.txt所在的文件夹/build 

3.cmake ..   配置

4.make   编译成可执行文件

 

****vscode c++中的快捷键

shift+alt+f 文档格式化

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值