zoukankan      html  css  js  c++  java
  • Sublime Text:Windows下配置C 编译环境和GDB调试环境

      写此文解决两个问题:

      1.在Sublime Text中实现编译运行含有外部输入的C程序(如含有scanf的程序);

      2.在程序运行完毕后不退出cmd,能继续用gdb调试程序。

    一、MinGW

    下载地址:https://sourceforge.net/projects/mingw/,点击”download“后等待几秒钟便会弹出下载框。

    相关介绍:http://blog.csdn.net/k1988/article/details/4375382(没找到原作者地址,引用了一篇转载的)

    安装与配置参考:http://jingyan.baidu.com/article/455a99509c76d8a1662778f6.html

     

    二、配置Sublime Text

    1) 按下图添加新的编译系统

     

    2) 在弹出的页面中复制以下代码(双击代码区域可全选),"Ctrl+s"保存为C.sublime-build。

    部分参数解释:(自己摸索的,不一定准确,供参考)
    ${file_path}:文件目录路径
    ${file_base_name}:不包含扩展名部分的文件名(如 test.c 的 file_base_name 为 test )
    "selector":"source.c":操作的文件类型为 .c 文件
    "encoding":"cp936":支持中文字符集
    "cmd","/k":执行完毕后不退出shell (/k 是 cmd 的参数)
    "variants":变量,这里定义了"Run"和"RunInCommand"两个变量
    Run:用于无外部输入(如scanf)的情况
    RunInCommand:用于有外部输入或需要调试的情况,将打开cmd窗口,程序运行完毕后可用命令“gdb xxx.exe”调试程序

    {
        "cmd": ["gcc", "${file}", "-o", "${file_path}/${file_base_name}"],
        "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
        "working_dir": "${file_path}",
        "selector": "source.c",
        "encoding":"cp936",
    
        "variants":
        [
            {
                "name": "Run",
                "cmd": ["cmd", "/c", "gcc", "${file}", "-o", "${file_path}/${file_base_name}", "&&","${file_path}/${file_base_name}.exe"]
            },
            {
                "name": "RunInCommand",
                "cmd": ["cmd", "/c", "gcc","-g", "${file}", "-o", "${file_path}/${file_base_name}", "&&", "start", "cmd", "/k", "${file_path}/${file_base_name}"]
            }
        ]
    }

     3) 按下图创建快捷命令,Key Bindings不一定在"CTags"中,找到打开即可;

    4) 在文件中添加如下内容并保存,具体快捷键可自行设置

    alt+r:启用Run编译运行程序

    alt+g:启用RunInCommand编译运行程序

    [
        {"keys": ["alt+r"], "command": "build", "args": {"variant": "Run"}},
        {"keys": ["alt+g"], "command": "build", "args": {"variant": "RunInCommand"}}
    ]

    5) 完毕。下图是运行效果。测试文件为一个排序算法sort.c

    alt+r,结果将在Sublime中显示

     alt+g,结果将在cmd窗口中显示,且执行完毕后不退出窗口,后续可用gdb调试程序。

    -----------------------------------------------------

    * 本文是根据自身经验所作,难免存在不合理之处。

    * 以上内容为作者原创,转载请注明出处。
    ----------------------------------------------------- 
  • 相关阅读:
    C++ 多线程 (4) 互斥量(mutex)与锁(lock)
    C++ 多线程(3)std::thread 详解
    c++ 多线程(2)创建线程对象的方法
    CMake解决c++11的phread库问题:undefined reference to `pthread_create’
    生成对抗网络--Generative Adversarial Networks (GAN)
    语义分割(semantic segmentation)——U-Net
    目标检测SSD: Single Shot MultiBox Detector
    基于内容的图像检索(CBIR) ——以图搜图
    去噪自动编码器
    利用Chrome开发者工具功能进行网页整页截图的方法
  • 原文地址:https://www.cnblogs.com/xiaopipi/p/5317185.html
Copyright © 2011-2022 走看看