使用g ++编译程序时,使用旧的幻像版本的当前文件

时间:2016-02-16 00:20:39

标签: c++ compilation makefile

我在这个问题上撕扯我的头发。

我有一个以#ifndef和#define开头的.h文件,就像正常一样。当我第一次编译它时,我有一个错字,所以它意外地写成这样:#ifnef。我修复它,保存文件,重新编译,但g ++编译器仍然给我同样的问题,预处理器不知道如何阅读“#ifnef”。

error: invalid preprocessing directive #ifnef

我不明白为什么会这样。我已经更改了文件,没有错误的文件副本,周围没有任何对象文件。

我正在使用这个makefile:

# Declaration of variables
CC = g++
CC_FLAGS = -w -I.

# File names
EXEC = run
SOURCES = $(wildcard *.cpp)
OBJECTS = $(SOURCES:.cpp=.o)

# Main target
$(EXEC): $(OBJECTS)
    $(CC) $(OBJECTS) -o $(EXEC)

# To obtain object files
%.o: %.cpp
    $(CC) -c $(CC_FLAGS) $< -o $@

# To remove generated files
clean:
    rm -f $(EXEC) $(OBJECTS)

然后,这是我的.h文件:

#include "UDP-base.h"
#include <queue>

#ifndef STREAM_MANAGER_H
#define STREAM_MANAGER_H

/*Stuff here*/

#endif // STREAM_MANAGER_H

0 个答案:

没有答案