首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

Linux上C编程遇到一个有关问题:找不到文件路径。老师进来看看

2012-08-13 
Linux下C编程遇到一个问题:找不到文件路径。老师进来看看。我写了一个测试的小例子,文件结构如下:~/xiaolong

Linux下C编程遇到一个问题:找不到文件路径。老师进来看看。
我写了一个测试的小例子,文件结构如下:
~/xiaolong/CProgram/test/下面有2个文件:file1,file2
file1里面文件结构及代码如下:
head.h

#include<stdio.h>
void SayHello();

main.c

#include "head.h"
int main(){
  SayHello();
}

SayHello.c

void SayHello(){
  printf("Hello world!!\n");
}
我在file1文件里面些了一个makefile文件编译以上程序是没有问题的,现在我想在file2文件里面些一个main程序,来调用file1文件里面的SayHello这个函数
在file2文件里面有一个test.c:
#include "~/xiaolong/CProgram/test/file1/head.h"

int main(){
  SayHello(); 
  return 0;


然后我用gcc test.c命令编译,出现以下错误:
No such file directory
compilation terminated

我认为只要在头文件中指定含有该函数声明的头文件就可以了,不知道错在哪里?

[解决办法]
先把#include "~/xiaolong/CProgram/test/file1/head.h"中的~换成具体的路径试下吧。“~”不一定能认识的呀!
[解决办法]
做Makefile时先用gcc -MM打印出文件的包含关系,避免出错
[解决办法]
应该是 gcc head.h test.c


有几个文件带上几个文件
[解决办法]
按照楼主的文件架结构,这样写就可以了:
#include "../file1/head.h"
另外编译的时候也要同步编译SayHello.c,否则找不到定义。
在file2文件夹里:
$gcc -Wall test.c ../file1/SayHello.c
[解决办法]
#include "~/xiaolong/CProgram/test/file1/head.h"
linux不认~
[解决办法]
包含头文件变的这么艰难,太可悲了...

建议你了解一下gcc -I这个选项。。。

热点排行