【发布时间】:2013-03-14 03:44:09
【问题描述】:
我对以下包含文件(使用 GCC)感到困惑
我在文件夹 AAA 中有 A.c 和 B.c
和 B.h 在 BBB 文件夹中
在交流中:
#include <stdio.h>
#include "B.h"
main()
{
errPrint();
}
在卑诗省:
#include <stdio.h>
#include "B.h"
void errPrint(void)
{
printf("err info\n");
}
在 B.h:
#ifndef _B_H
#define _B_H
void errPrint(void);
#endif
现在我运行命令:
#gcc -I /BBB A.c B.c -o exeobj
没关系。 但是我必须使用“-I”来指定标题似乎有点无聊 其他文件夹。 所以我编辑我的“/etc/profile”文件并添加了
C_INCLUDE_PATH=/BBB
export C_INCLUDE_PATH
指定头文件夹,然后
echo $C_INCLUDE_PATH
它显示了正确的路线。 但是当我编译时:
#gcc -c A.c B.c
错误显示:
error: B.h: No such file or directory
我不知道哪里出错了,任何人都有线索,欢迎任何建议。
注意:我是新手,还不能使用 Makefile...
【问题讨论】:
-
我设置了你上面描述的结构并用 gcc 4.7.2 进行了尝试,它按预期工作。因此,我认为您尝试做的事情没有任何根本性的问题,但我不确定为什么它不适合您。
-
这对我也很有效。您是否尝试过在命令行中定义环境变量?我想不出一个 shell 不执行 /etc/profile 的原因,但是试试
export PATH=\BBB; gcc -c A.c B.c -
呃,我错了你的意思,你的意思是'export CPATH=\BBB',而不是'export PATH=\BBB'对吗?
-
运行
export | grep C_INCLUDE会得到什么? -
它显示了我包含的正确位置,'declare -x C_INCLUDE_PATH="/home/workspace/routine/include'。
标签: c gcc header include-path user-profile