C未能包含
我们需要对下载的大包进行一些改进。 假设主文件夹就像C未能包含
... /凸出
,并有将用于编译项目
... /凸出/ Makefile中
。
我添加了一个新的文件夹
... /凸出/特征1/file1.h ... /凸出/特征1/file1.c中
file1.c中是包括file1.h
所以
的#include “特征1/file1.h”
然后,当生成文件被执行,它停止在命令等
gcc -c feature1/file1.c -I。 ...
错误消息读起来就像它没有包括file1.h
同样的代码可以在另一种情况下进行编译,而不会触发错误。 这两个实例都是Ubuntu 10.04。我不会说他们是相同的,但是应该是非常相似的。任何想法出了什么问题?谢谢。
詹姆斯
这取决于the "-I" parameters to gcc。如果文件夹“feature1”在其中而不是其父 - 它会失败。如果它的父母在其中 - 它会成功。
你的情况(“-I。”)它是在搜索路径中的“feature1”,而不是它的父项。
另外,正如其他人提到的,由于这两个文件都在同一目录中,因此不需要“include
”指令中的目录名称。
Makefile位于feature1的父级。并且在file1.c中还包含“feature2/file2.h”包含“feature3/file3.h”... – user462301 2013-03-02 08:38:32
@ user462301我不确定我是否理解你想说的内容。在make文件不相关的地方,命令“gcc -I”。在每个目录中调用,并在每个目录中“。”指向当前,而不是make文件所在的位置。 – littleadv 2013-03-02 08:42:08
file1.c is to include file1.h
在这种情况下,两个文件都在同一个文件夹,所以我认为这必须是:
#include "file1.h"
如果h和.c文件在同一目录下,我会期望包括:
#include "file1.h"
“错误信息读取像...” - 为什么不复制/粘贴实际的错误信息,所以没有混淆?当你在它的时候,为Makefile调用的'gcc'命令做同样的事情。 – 2013-03-02 08:49:44