vscode+MinGW+cmake设置轻量ide

本地随手写一些题目的时候,发现visual studio很是庞大emmmphp

      1. vscode
        vscode是一个轻量编辑器
        (1)vscode插件与设置自动同步
        在两个电脑上,用vscode能够同步插件 ,利用VSCode插件 "Settings Sync"。
        特性:
        1. Use your GitHub account token and Gist.
        2. Easy to Upload and Download on one click.
        3. Show a summary page at the end with details about config and extensions effected.
        4. Auto Download Latest Settings on Startup.
        5. Auto upload Settings on file change.
        6. Share the Gist with other users and let them download your settings.
        7. Supports GitHub Enterprise
        关键命令:
        1. Upload Key : Shift + Alt + U 2. Download Key : Shift + Alt + D
        按照命令设置便可。
        (2)vscode简单命令
        ctrl+shift+P: 经过关键词 来查找命令
      2. 安装MinGW-W64
        选择以下:

        安装完后记得加 “..../bin/”到环境变量。html

      3. cmake
        一直下一步安装便可。勾选环境变量。
      4.  到了重要的一大堆的设置的时候了。
        主要参考了一些资料
        cmake命令大全        cmake介绍    cmake手册详解
        主要配置参考两篇文章,a LOX: 利用VSCode进行C/C++开发    b 初学c++ VS code + CMake 编译调试helloWord
        a 是利用vscode中的cmake tools插件来边界,b是利用cmd命令。
      5. vscode中的各类变量
        介绍一下有关 文件之类的,

        ${workspaceRoot} 当前打开的文件夹的绝对路径+文件夹的名字linux

        ${workspaceRootFolderName}   当前打开的文件夹的名字c++

        ${file} 当前打开正在编辑的文件名,包括绝对路径,文件名,文件后缀名git

        ${relativeFile} 从当前打开的文件夹到当前打开的文件的路径 shell

        如 当前打开的是test文件夹,当前的打开的是main.c,并有test / first / second / main.cjson

        那么此变量表明的是  first / second / main.cwindows

        ${fileBasename}  当前打开的文件名+后缀名,不包括路径编辑器

        ${fileBasenameNoExtension} 当前打开的文件的文件名,不包括路径和后缀名
        ide

        ${fileDirname} 当前打开的文件所在的绝对路径,不包括文件名

        ${fileExtname} 当前打开的文件的后缀名

        ${cwd} the task runner's current working directory on startup

        不知道怎么描述,这是原文解释,

        跟 cmd 里面的 cwd 是同样的

        ${lineNumber}  当前打开的文件,光标所在的行数

      6.   各类设置
      7.  launch.json
        name 的名字随便起, preLaunchTask是和下一个task.json中Label名字关联起来的
         1 {  2     // 使用 IntelliSense 了解相关属性。 
         3     // 悬停以查看现有属性的描述。
         4     // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
         5     "version": "0.2.0",  6     "configurations": [  7 
         8  {  9             "name": "(gdb) Launch", 10             "type": "cppdbg", 11             "request": "launch", 12             // "program": "${fileDirname}/${fileBasenameNoExtension}.out",
        13             "program": "${fileDirname}/${fileBasenameNoExtension}.exe", 14             "args": [], 15             "stopAtEntry": false, 16             "cwd": "${workspaceFolder}", 17             "environment": [], 18             "externalConsole": true, 19 
        20             "MIMode": "gdb", "miDebuggerPath": "D:\\Program Files\\mingw-w64\\mingw64\\bin\\gdb.exe", 21 
        22 
        23             "linux": { // Linux 系统下的配置
        24              "MIMode": "gdb" }, 25             "osx": { // OS X系统下的配置 
        26             "MIMode": "lldb" }, 27             "windows": { // Windows 系统下的配置 
        28             "MIMode": "gdb", "miDebuggerPath": "D:\\Program Files\\mingw-w64\\mingw64\\bin\\gdb.exe" }, 29             "preLaunchTask": "build"
        30             
        31  }, 32 
        33  { 34             "name": "(gdb) debug multi", 35             "type": "cppdbg", 36             "request": "launch", 37             // "program": "${fileDirname}/${fileBasenameNoExtension}.out",
        38             "program": "${fileDirname}/build/TEST.exe", 39             "args": [], 40             "stopAtEntry": false, 41             "cwd": "${workspaceFolder}", 42             "environment": [], 43             "externalConsole": true, 44 
        45             "MIMode": "gdb", "miDebuggerPath": "D:\\Program Files\\mingw-w64\\mingw64\\bin\\gdb.exe", 46 
        47 
        48             "linux": { // Linux 系统下的配置
        49              "MIMode": "gdb" }, 50             "osx": { // OS X系统下的配置 
        51             "MIMode": "lldb" }, 52             "windows": { // Windows 系统下的配置 
        53             "MIMode": "gdb", "miDebuggerPath": "D:\\Program Files\\mingw-w64\\mingw64\\bin\\gdb.exe" }, 54             // "preLaunchTask": "debug"
        55         
        56  } 57 
        58  ] 59 }

         

      8. Task.json
         1 {  2     // See https://go.microsoft.com/fwlink/?LinkId=733558
         3     // for the documentation about the tasks.json format
         4     "version": "2.0.0",  5     "tasks": [  6  {  7             "label": "build",  8             "type": "shell",  9             "command": "g++", 10 
        11             // "args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.out","-std=c++11"],
        12             // "args":[],
        13             "args": ["-g","${file}","-o","${fileDirname}/build/TEST.exe","-std=c++11"], 14             "presentation": { 15                 "reveal": "always", 16                 "panel": "shared"
        17  }, 18 
        19 
        20             "problemMatcher":{ 21                 "owner": "cpp", 22                 "fileLocation": ["relative", "${workspaceRoot}"], 23                 "pattern": { 24                     "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 25                     "file": 1, 26                     "line": 2, 27                     "column": 3, 28                     "severity": 4, 29                     "message": 5
        30  } 31              
        32  } 33  } 34 
        35 
        36 
        37  ] 38 }
        View Code

         

      9. 文件-首选项-设置
        { "cmake.debugConfig": { "miDebuggerPath": "D:\\Program Files\\mingw-w64\\mingw64\\bin\\gdb.exe",    // Windows 下指定gdb路径(已添加到PATH)
                "externalConsole": true,    // 使用外部控制台
                "stopAtEntry": false    // 在起点处停顿(噢!在这停顿!)
         }, "git.ignoreLimitWarning": true }
        View Code

        这个是和cmake相关的,设置里面找cmake插件相关的命令

      10. CMakeLists编写

        根目录下的

         1 # 使用CMake Tools插件(可选,若是这个项目去到一个没有这个插件的机器也一样能够生成项目)  2 include(CMakeToolsHelpers OPTIONAL)  3 
         4 # CMake 最低版本号要求  5 cmake_minimum_required(VERSION 2.8)  6 
         7 # 项目名称  8 project(TEST)  9 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 10 # 查找当前目录下的全部源文件 11 # 并将名称保存到 DIR_ROOT_SRCS变量 a 12 aux_source_directory(. DIR_ROOT_SRCS) 13 
        14 # 添加 MyLib子目录 15 add_subdirectory(MyLib) 16 
        17 # 指定生成目标 TEST 18 add_executable(TEST ${DIR_ROOT_SRCS}) 19 
        20 # 添加连接库 21 target_link_libraries(TEST PrinterLib)
        View Code

        子文件夹MyLib下的

        1 include(CMakeToolsHelpers OPTIONAL) 2 
        3 cmake_minimum_required(VERSION 2.8) 4 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 5 aux_source_directory(. DIR_LIB_SRCS) 6 
        7 # 生成连接库 8 add_library(PrinterLib ${DIR_LIB_SRCS})
        View Code

         

      11. vscode左下角

        F5启动对应launch.json中的设置,debug multi是对应多源文件调试的。
        Build->是cmake的编译,而后cmake-> debug
        对单文件,选择launch.json中的第一个就能够了,不须要用到cmake

      12. 最后在另外一台电脑上一样配置的时候,出现了错误至今没法解决_(:з」∠)_
      13. https://intellij-support.jetbrains.com/hc/en-us/community/posts/207460115-The-C-compiler-is-not-able-to-compile-a-simple-test-programm 折腾不动了_(:з」∠)_
相关文章
相关标签/搜索