天天看点

sublime text 3配置C++编译环境

安装MinGW

看这篇百度教程安装MinGW并添加环境变量D:\MinGW\bin;

其实安装了MinGW并且配置了环境变量就可以直接用sublime编译C++文件了,只要在sublime中编译系统选择C++ single file就行了,但是常常出现两个报错,一个是说main要返回一个int型变量

F:\work\test1.cpp::: error: '::main' must return 'int'
 void main()
           ^
[Finished in s]
           

这个只要把main前面的void改成int并在最后面加一句return 0;就行了

还有一种是由于中文编码系统出错

[Decode error - output not utf-]
compilation terminated.
[Finished in s]
           

这往往是sublime添加了中文编码GBK支持的时候C++源文件默认采用了GBK编码而编译配置输出的时候默认用的是UTF-8导致的,解决办法就是让两者一致:

要么C++源文件用UTF-8编码C++ Single File.sublime-build就不用改,这样在.cpp文件里面就不能写中文了

要么就是C++源文件用GBK编码,C++ Single File.sublime-build文件按照如下方法修改成”encoding”:”gbk”

修改C++ Single File.sublime-build文件

在sublime软件安装路径的packages下(D:\Sublime Text 3\Packages)找到C++.sublime-package文件,把它拷到桌面,右键选择好压打开它(其他压缩软件也可以),打开后找到C++ Single File.sublime-build文件,用记事本打开,按照如下修改

{
    "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++",
    "encoding":"gbk",

    "variants":
    [
        {
            "name": "Run",
            "shell_cmd": "g++ -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\""
        }
    ]
}
           

其实只做了两处修改,就是在第6行加了一句”encoding”:”gbk”,或者”encoding”:”cp936”,注意上一行结尾如果没有逗号要补上一个逗号作为行结束标志。

还有第12行的 g++后面加了一个编译选项-std=c++11,以使用C++11的相关特性。

修改完之后保存文件(如果用sublime编辑器打开按快捷键Ctrl+S保存,在sublime里我经常忘了保存文件。。。)然后好压提示文件“C++ Single File.sublime-build”已经被修改,您希望在压缩文件中更新它吗?选择是,如下

sublime text 3配置C++编译环境

然后关闭好压软件,将修改好的C++.sublime-package文件覆盖原来D:\Sublime Text 3\Packages的文件,提示说要管理员权限,选择“继续”就修改好了。

测试文件

写个C++文件测试一下test.cpp

#include <iostream>
using namespace std;
int main()
{
    cout<<"Hello world!"<<endl;
    cout<<"测试中文"<<endl;
    return ;
}
           

在sublime中选择“工具”——“编译系统”——“C++ Single File”,然后按Shift+Ctrl+B编译运行,结果如下

Hello world!
测试中文
[Finished in s]
           

继续阅读