2013-07-20 58 views
4

所以我试图从Windows迁移到Linux。今天我正在尝试使用Emacs而不是Windows IDE进行编码和编译。这是我的示例代码:为什么不g ++覆盖可执行文件

#include <iostream> 

using namespace std; 

int main() { 
    cout << "HELLO" << endl; 
} 

其中我使用从emacs的编译ESC-X->编译期>克++ -o你好HELLO.CPP

从终端,我使用”执行你好./hello ”。然后我将我的代码更改为'cout < <“HOLA FFS”< < endl;'并尝试再次使用g ++ -o hello hello.cpp进行编译。编译完成没有错误,但是当我试图从终端执行hello时,输出是“HELLO”,而不是“HOLA FFS”。

它为什么这样做?

回答

0

你应该检查的接受的回答这个问题:

Emacs fastest C++ compilation process?

基本上从那里的代码(你应该粘贴到~/.emacs)将:

  1. 自动保存文件
  2. 生成Makefile,如果它尚未存在
  3. 运行compile
  4. 如果compile成功完成,则运行程序,否则显示第一个错误。

而这一切只用F5 :)

2

可能的原因是您在更改代码后未保存代码。我认为这不一定与emacs有关。请记住经常使用C-x C-s。

+0

emacs的实际提示是在编译之前,所以这不是它。 –

+0

@BenjaminLindqvist嗯......当你找到解决方案时,让我知道。 – lulyon

+0

这很奇怪。当我编辑代码时,我认为我实际上正在编辑另一个缓冲区,而不是与原始代码绑定的缓冲区。因此,保存到新的缓冲区不会影响hello.cpp,但会有一些其他奇怪的文件。 –

相关问题