sublime text 3更改已有的build system(debian jessie)

来源:互联网 发布:音视频编辑软件 编辑:程序博客网 时间:2024/06/06 02:19

    sublime text 3默认可以添加新的build system,选择了自己添加的build system后,就可以Ctrl+B实现编译和建立,然后运行。如何建立自己的build system,以及如何书写其中的参数,请参见http://sublime-text.readthedocs.org/en/latest/reference/build_systems.html

   但是针对同一种语言(比如C++),最方便的是只有一套编译系统,而且它能够按照自己想要的方式来正确编译。这里以C++为例,讲述如何更改sublime text 3自带的编译系统,而不是针对同一种语言建立自己的另一套。

   C++默认的编译系统只能处理当前文件,而对于项目工程,往往还需要更加复杂的编译方式,比如工程目录下有多个源文件,比如还需要包含额外的库,再比如需要将项目中一个或几个工程编译成库,供项目中其他工程(最常见是主工程)调用等等。所以就需要更改默认编译系统的默认行为,使之能处理各种复杂情况。

    方法:1. 编写自己的合适的build system,写的是否合理是否正确,需要学习相关语言的编译参数,比如gcc, g++的编译参数,并结合http://sublime-text.readthedocs.org/en/latest/reference/build_systems.html 中build system的书写方法来完成。这里不是我们的重点。

              2. 假设我们已经有了一个合适的build system文件。下面就在debian下用它来改变默认的build system。

                  首先更名为C++.sublime-build;

                  然后,找到/opt/sublime_text/Packages(sublime安装目录)下的C++.sublime-package,备份防止改错;

                  接下来,用zip命令删除C++.sublime-package中的C++.sublime-build文件:sudo zip -d C++.sublime-package C++.sublime-build;

                  最后将之前的C++.sublime-build添加到此时的C++.sublime-package中:sudo zip -g C++.sublime-package C++.sublime-build。

               重启sublime text,实验调用默认的C++ build system,成功!


注意:1. 要事先安装zip:apt-get install zip

          2. 关于zip的命令用法见http://zeuscn.net/archives/2012/12/25/ubuntu-linux-zip-command.html

          3. C++.sublime-package是sublime text独有的package文件,不是标准的zip压缩文件。本来也不知道怎么去处理,但是看到某人在windows下用rar解压这种package文件,于是就尝试着在linux对照操作了。试了很多方法去解压,tar,unrar都不行,最后发现unzip可以正确解压。所以最后用unzip,zip去操作package文件了,当作zip压缩包处理,发现没有任何问题。package究竟是什么格式,为什么在windows下用rar可以,而在debian又只能当作zip文件,这些问题只能等待高手解答。

          4. 采用上述方法更新(删除添加)后的C++.sublime-build文件与源文件还是有区别的。用了zip命令之后,新的build文件现实被"deflated 50%",而再用unzip解压新的C++.sublime-package时也发现build文件和其他文件都不同,不是extracting,而是inflating修饰。这说明这样更新后的build文件实际上是压缩过了的。而package中其他文件都没有压缩,这也间接说明package文件不是标准的zip文件。压缩过的build文件最后sublime也能正确使用,说明sublime应该也是在内存中解压后来读取build文件中的参数配置和解析命令的。


至此,可以针对自己需要,将默认build system更改为合适的。

下一步是在sublime中用gdb;最好是还能和cmake一起使用,那就很完美了。

0 0
原创粉丝点击