VSCode C++开发环境设置-构建及运行 macOS版

VSCode C++开发环境设置-构建及运行,重点在于编译器设置文件 tasks.json

步骤
  1. 下载 Visual Studio Code on macOS

  2. 安装C++扩展
    在这里插入图片描述

  3. 安装Clang

    • 查看命令: clang --version
    • 若未安装,安装命令行开发工具的命令:xcode-select --install
  4. 新建文件夹helloworld, 用VSCode打开, 然后新建main.cpp, 当前目录结构如下:

    helloworld
     |- helloworld.cpp
    
  5. 编辑helloworld.cpp, 内容如下:

    #include <iostream>
    #include <vector>
    #include <string>
    
    using namespace std;
    int main()
    {
        vector<string> msg{"Hello", "C++", "World", "from", "VS Code", 
                           "and the C++ extension!"};
        for (const string &word : msg)
        {
            cout << word << " ";
        }
        cout << endl;
        return 0;
    }
    
  6. 构建

    • helloworld.cpp为active状态(当前打开状态)

    • 选择Terminal->Configure Default Build Task, 会出现一个下拉框,列出了许多VSCode在你的机器上发现的预先定义的编译器构建任务(build tasks),

    • 选择 C/C++: clang++ build active file

    • 此时会在.vscode文件夹下创建tasks.json文件,并在编辑窗口打开该文件,内容如下:

      {
      	"version": "2.0.0",
      	"tasks": [
      		{
      			"type": "cppbuild",
      			"label": "C/C++: clang++ build active file",
      			"command": "/usr/bin/clang++",
      			"args": [
      				"-g",
      				"${file}",
      				"-o",
      				"${fileDirname}/${fileBasenameNoExtension}"
      			],
      			"options": {
      				"cwd": "${workspaceFolder}"
      			},
      			"problemMatcher": [
      				"$gcc"
      			],
      			"group": {
      				"kind": "build",
      				"isDefault": true
      			},
      			"detail": "compiler: /usr/bin/clang++"
      		}
      	]
      }
      
    • 当前目录结构如下:

      	helloworld
      	 |- .vscode
      	    |- tasks.json \\ 编译器构建设置
      	 |- helloworld.cpp
      
    • tasks.json 解释

      • command设置指定要运行的程序。该例中,"clang++"是导致Clang编译器期望C++编码并链接到C++标准库的驱动程序。

      • args数组指定了将传递给clang++的命令行参数。这些参数必须按照编译器预期的顺序进行指定。

      • 此任务要求C++编译器编译活动(active)文件(${file}),并在当前目录(${fileDirname})中创建一个与活动文件名称相同(${fileBasenameNoExtension})的输出文件(-o),我们的例子中即创建helloworld。

      • label是你在任务列表中将看到的值,可以任意命名

      • problemMatcher选择输出解析器,用来在编译器输出中发现错误和警告。对于clang++,使用$gcc问题匹配器将能得到最佳结果。

      • group对象中的**“isDefault”: true指定你按下⇧⌘B将会运行该任务。该项仅是为了方便,你也可以通过Terminal->Run Build Task** 进行构建。

      • 更多命令,参见variables-reference

      • 修改args如下

        {
        	"version": "2.0.0",
        	"tasks": [
        		{
        			"type": "cppbuild",
        			"label": "C/C++: clang++ build active file",
        			"command": "/usr/bin/clang++",
        			"args": [
        				"-std=c++17", // add
        				"-stdlib=libc++", // add
        				"-g",
        				"${file}",
        				"-o",
        				"${fileDirname}/${fileBasenameNoExtension}"
        			],
        			"options": {
        				"cwd": "${workspaceFolder}"
        			},
        			"problemMatcher": [
        				"$gcc"
        			],
        			"group": {
        				"kind": "build",
        				"isDefault": true
        			},
        			"detail": "compiler: /usr/bin/clang++"
        		}
        	]
        }
        
  7. 运行

    • 回到helloworld.cpp,保证它是active状态(当前打开状态)

    • ⇧⌘B或者Terminal->Run Build Task,此时你应该看到集成终端窗口出现在代码编辑器下面。任务完成后,终端将显示编译器的输出,指示生成是成功还是失败。对于成功的clang构建,输出如下所示:
      在这里插入图片描述

    • 点击集成终端窗口右上角工具栏的+号会新建一个终端,用ls -al 查看内容,如下
      在这里插入图片描述

    • 用./helloworld运行程序

      lee@leedeMacBook-Pro helloworld % ./helloworld
      Hello C++ World from VS Code and the C++ extension! 
      lee@leedeMacBook-Pro helloworld % 
      
  8. 修改tasks.json

    • 多个C++源文件构建,可以将 ${file} 替换为 “${workspaceFolder}/*cpp”
    • 输出"${fileDirname}/${fileBasenameNoExtension}“也可以直接硬编码,例如改为”${workspaceFolder}/myProgram.out"。
参考
  1. 官网
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值