mqh21364 发表于 2008-7-11 17:24

关于DevCPP的一个问题。

我在DevCPP里面创建了一个C++的Project,本来它里面有一个main.cpp, 然后我又加了个头文件,为了和C++的标准相符,所以我的头文件没有后缀名(比如说叫a)。

然后我在main.cpp里面#inclulde "a"。但是编译的时候出问题了。提示说“需要的a.o没有”。我看了编译器生成的Makefile.win,里面有这么几句:

OBJ  = main.o exception.o $(RES)
main.o: main.cpp
        $(CPP) -c main.cpp -o main.o $(CXXFLAGS)

exception.o: exception
        $(CPP) -c exception -o exception.o $(CXXFLAGS)

就是最后这句了关键。
为什么编译器非要想着把我的头文件给编译了,而不是用预处理导入到main.cpp里面呢??

附加:
我用MinGW是可以编译过去的,用DevCpp的 ctrl+F9 不行。

谁知道啊??谢谢!!

水中无月 发表于 2008-7-11 17:28

#inclulde "a"。// 这样是错误的。比如你引用IO流是用 #inclulde <iostream>

所以编译器怎么知道你是要引用模版还是头文件呢?所以一定要用“.h”后缀。
C++和C在DevC++中没有明显的界限。不要把他们划分得太清楚了。[em01]

[[it] 本帖最后由 水中无月 于 2008-7-11 17:33 编辑 [/it]]

mqh21364 发表于 2008-7-11 17:31

回2#

那在MinGW里面是可以的啊! DevC++不是用的MinGW么?

水中无月 发表于 2008-7-11 17:34

这个不知道。但是C++的iostream和iostream.h分别是两个意思
所以我还是建议你不要去掉后缀,*.h不是很好嘛

mqh21364 发表于 2008-7-11 17:36

哦,这样啊!

谢谢你啊!!

再看看还有人对MinGW可以通过这个有什么见解。

水中无月 发表于 2008-7-11 17:39

现在论坛好象没几个人在线哦[em02]

mqh21364 发表于 2008-7-11 17:48

呵呵,等等看吧!要不晚上回去看也行。

mqh21364 发表于 2008-7-11 20:49

谁来帮忙看看啊?

水中无月 发表于 2008-7-11 20:52

哎,按我说的不是很好吗?

mqh21364 发表于 2008-7-11 23:14

我想知道那样怎么不行啊关键是

页: [1]

编程论坛