sublime text2对编译无反应的解决办法

来源:互联网 发布:淘宝卖衣服从哪进货 编辑:程序博客网 时间:2024/06/04 08:43
今天用sublime text2搭建c/c++的gcc编译环境,无奈按照网上的方法,其它环境都配好了,但是就是ctrl+B编译不了程序。经过多次排查,发现了几个问题。
搭建c/c++的gcc环境参考博客点击打开链接

1.配置的问题,就是builder文件写错了,在网上找了很多的代码,试过都不行,然后故意删掉一个大括号,会报错

说明如果配置错误,那么程序会报错,不是配置的问题。

2.sublime text2原来配置过lua的环境,并且能够编译运行,现在再次编译lua程序,发现也没有反应,说明这个问题不只是针对c/c++的配置,而是软件的环境出了问题。

3.百度许久,发现解决办法。(参考博客 点击打开链接)
ctrl+~调出控制台后,发现问题。

这个问题的起因是配置文件目录下Packages\Default目录下的exec.py在编辑环境变量,但是环境变量中的字符集确少了ascii字符集。

解决方案:

找到配置文件目录位置,我的电脑上是C:\Users\Administrator\AppData\Roaming\Sublime Text 2\Packages\Default
其中的exec.py,打开编辑,找到第41-42行:
for k, v in proc_env.iteritems(): proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())

两种修改方案:

1、果断删掉!(以防万一,在前面加#注释掉)

2、对它进行异常处理,避免它出错时停止程序运行就像这样:

     for k, v in proc_env.iteritems():
            try:
                proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
            except UnicodeDecodeError:
                print "Encoding error..."
                print "VARIABLE: ", k, " : ", v

然后你在尝试程序的编译,就会发现一切正常了!

1 0