[Linux服务器] VSCODE 编译C++

667 0
Honkers 2025-10-7 08:26:19 | 显示全部楼层 |阅读模式

先写一个cpp文件

  1. #include <iostream>
  2. using namespace std;
  3. int main(){
  4. cout<<"helloworld"<<endl;
  5. int i;
  6. for(i=0;i<5;i++){
  7. cout<<i<<endl;
  8. }
  9. return 0;
  10. }
复制代码

然后配置launch文件

  1. {
  2. "version": "0.2.0",
  3. "configurations": [
  4. {
  5. "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
  6. "type": "cppdbg", // 配置类型,这里只能为cppdbg
  7. "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
  8. "program": "/home/yourname/text/c++test.out", // 将要进行调试的程序的路径,只能识别英文路径
  9. "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
  10. "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,我一般设置为true
  11. "cwd": "/home/yourname/text/.vscode", // 调试程序时的工作目录
  12. "environment": [], // (环境变量?)
  13. "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台,
  14. // 但是最新版cpptools有BUG,具体请看文末的注意
  15. "internalConsoleOptions": "neverOpen", // 如果不设为neverOpen,调试时会跳到“调试控制台”选项卡,你应该不需要对gdb手动输命令吧?
  16. "MIMode": "gdb", // 指定连接的调试器,可以为gdb或lldb。但目前lldb在windows下没有预编译好的版本。
  17. "miDebuggerPath": "gdb", // 调试器路径,Windows下后缀不能省略,Linux下则去掉
  18. "setupCommands": [ // 用处未知,模板如此
  19. {
  20. "description": "Enable pretty-printing for gdb",
  21. "text": "-enable-pretty-printing",
  22. "ignoreFailures": false
  23. }
  24. ],
  25. }
  26. ]
  27. }
复制代码

然后写task文件

  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": "g++", // 任务名称,与launch.json的preLaunchTask相对应
  8. "command": "g++", // 要使用的编译器, C++就写g++
  9. "args": [
  10. "${file}",
  11. "-o", // 指定输出文件名,不加该参数则默认输出a.exe,Linux下默认a.out
  12. "${fileDirname}/${fileBasenameNoExtension}.out",
  13. "-g", // 生成和调试有关的信息
  14. //"-Wall", // 开启额外警告
  15. "-static-libgcc", // 静态链接
  16. "-std=c99" // C语言最新标准为c11,或根据自己的需要进行修改比如C++17
  17. ], // 编译命令参数
  18. "type": "shell", // 可以为shell或process,前者相当于先打开shell再输入命令,后者是直接运行命令
  19. "group": {
  20. "kind": "build",
  21. "isDefault": true // 设为false可做到一个tasks.json配置多个编译指令,需要自己修改本文件,我这里不多提
  22. },
  23. "presentation": {
  24. "echo": true,
  25. "reveal": "always", // 在“终端”中显示编译信息的策略,可以为always,silent,never。具体参见VSC的文档
  26. "focus": true, // 设为true后可以使执行task时焦点聚集在终端
  27. "panel": "shared" // 不同的文件的编译信息共享一个终端面板
  28. },
  29. "problemMatcher": "$gcc"
  30. }
  31. ]
  32. }
复制代码

最后ctrl+shift+b生成 .out文件
然后F5运行调试即可

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行