每次保存后如何进行自动g ++编译?

时间:2016-04-02 13:28:35

标签: c++ g++

我正在编写简单的C ++代码(一个" cpp"文件)。现在我通过从命令行手动运行g++来编译我的程序。但我想知道在每次保存文件后是否有任何方法可以进行自动g ++编译。

我正在使用Ubuntu和Sublime Text 3。

5 个答案:

答案 0 :(得分:2)

创建一个makefile。大多数编辑器都有一个执行make的快捷键。

答案 1 :(得分:1)

您可以使用make命令。

示例:假设文件名是test.cpp,那么您可以执行以下命令:

void write(void* value, size_t length);    //Write is some random write function

Type var;
write((void*)var,sizeof(Type));  

它将使用g ++自动编译,因为扩展名为.cpp

答案 2 :(得分:1)

还有更多更好的解决方案:

    对于Vim ,
  • YouCompleteMe会在您键入时对背景中的代码进行编译和分析
  • Emacs-ycmd是Emacs的几个端口之一
  • RStudio IDE执行for C ++代码(当它是R环境时)

通过在用户空间中使用Linux内核挂钩,只要您保存的文件被做出反应,就可以更简单地“烹饪”类似的事情。在这里,您只需致电g++,或其他人已经说过,您可能需要make

其中一个钩子是inotify;有几个Ubuntu包访问它(我还没有使用)。这是一个:

edd@max:~$ apt-cache show entr
Package: entr
Priority: optional
Section: universe/misc
Installed-Size: 61
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Yuri D'Elia <wavexx@thregr.org>
Architecture: amd64
Version: 2.6-1
Depends: libbsd0 (>= 0.6.0), libc6 (>= 2.4)
Filename: pool/universe/e/entr/entr_2.6-1_amd64.deb
Size: 11310
MD5sum: 818b54114577b8d15d619577acf52c97
SHA1: b8422ee12546843f3357c1114bf1f5eeea8c863e
SHA256: ada9aa2ea218fc9f7a255b576d5069dda06da369ecc4000bb596e398b04eeafd
Description-en: Run arbitrary commands when files change
 The Event Notify Test Runner (entr) runs arbitrary commands when
 files change. Changes are detected through the kqueue/inotify
 kernel interface.
Description-md5: 52fe22e37b3719b7c736bf46a6d8c9b7
Homepage: http://entrproject.org/
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu

edd@max:~$

答案 3 :(得分:0)

使用与IDE /编辑器集成的正确构建系统。

有很多可供选择。我的个人偏好是SCons(http://scons.org/),但也有像CMake(https://cmake.org/)或autotools(https://en.m.wikipedia.org/wiki/GNU_Build_System)这样的选项可用,或者只是简单的Makefile。 而且还有许多不太知名的。 检查出来并选择最适合您需求的产品。

答案 4 :(得分:0)

如果使用的是VS Code,则可以为VS Code安装扩展名C/C++ Compile Run
更改代码后,只需单击F6即可执行它而不传递任何其他参数,或者单击F7在命令面板中键入传递的参数,该参数将在命令面板的开头传递给代码。执行。

C/C++ Compile Run