首页 > 代码库 > Sublime配置C和C++编译运行环境

Sublime配置C和C++编译运行环境

     最近在学习《深入理解计算机系统》,里面的代码是在Linux环境下的C语言编写,由于采用gcc编译环境,为方便本人学习,特在Windows环境下载了MinGM,并且配合Sublime编辑器,发挥很大功能,能够实现简单C程序的编译,运行和反编译查看汇编代码。

  1.安装MinGW

     在安装Dev C++的过程中自动安装了MinGW,也可以单独下载安装MinGW。

     2.配置环境变量

      在MinGW bin文件中有很多命令,为了使这些可执行命令在控制台直接使用,需要配置环境变量,根据MinGW的文件路径

      (本人:C:\Program Files (x86)\Dev-Cpp\MinGW64),配置环境变量。

wmic ENVIRONMENT where "name=‘path‘ and username=‘<system>‘" set VariableValue="http://www.mamicode.com/%path%;C:/Program Files (x86)/Dev-Cpp/MinGW64W/bin"
wmic ENVIRONMENT create name="LIBRARY_PATH",username="<system>",VariableValue="http://www.mamicode.com/C:/Program Files (x86)/Dev-Cpp/MinGW64/lib"
wmic ENVIRONMENT create name="C_INCLUDEDE_PATH",username="<system>",VariableValue="http://www.mamicode.com/C:/Program Files (x86)/Dev-Cpp/MinGW64/include"

     将上面代码复制,粘贴到新建文本文档中,保存为 "**.bat" ,右键以管理员身份运行,配置环境变量完成。

     3. 构建C语言编译系统

      选择tool –> Build System –> New Build System

      然后输入以下代码:

{
"working_dir": "$file_path",
"cmd": "gcc -Wall \"$file_name\" -o \"$file_base_name\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"selector": "source.c",
"variants":[{"name": "Run","shell_cmd": "gcc -Wall \"$file\" -o \"$file_base_name\" && start cmd /c \"${file_path}/${file_base_name} & pause\""}]
}

     按Ctrl+s保存,会自动打开user目录(Sublime Text 3\Packages\User),我们修改 文件名为 c.sublime-build,保存在此目录。

     这样以后打开.c文件就默认是c类型,按Ctrl+Shift+B就可以编译运行C程序。

     

     4. 构建C++语言编译系统

      步骤同上,只是将插入代码中的gcc该为g++, source.c改为source.c++ ,保存文件名c.sublime-build改为c++.sublime-build就可以了;

{
"encoding": "utf-8",
"working_dir": "$file_path",
"shell_cmd": "g++ -Wall -std=c++11 \"$file_name\" -o \"$file_base_name\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"selector": "source.c++",
"variants":[{"name": "Run","shell_cmd": "g++ -Wall -std=c++11 \"$file\" -o \"$file_base_name\" && start cmd /c \"${file_path}/${file_base_name} & pause\""}]
}

    5. 编译和反编译命令

     对于一个C程序,使用命令gcc -S main.c 可以产生对应的汇编代码main.S,可以直接用文本编辑器打开查看。

     对于生成的object文件,可以采用objdump命令进行反汇编。

     objdump -t obj 输出目标文件的符号表()
     objdump -h obj 输出目标文件的所有段概括()
     objdump -j .text/.data -S obj 输出指定段的信息
     objdump -S obj C语言与汇编语言同时显示

     objdump -d obj 反汇编那些应该还有指令机器码的section

      

      

 

Sublime配置C和C++编译运行环境