我曾经能够编译C程序,但现在我不能:
$ cat helloworld.c
#include <stdio.h>
int main(void)
{
printf("Hello, world!\n");
return 0;
}
$ gcc helloworld.c
helloworld.c:1:19: error: no include path in which to search for stdio.h
是的,我确实有/usr/include/stdio.h
。是的,已安装build-essentials
。
在我修改~/.bashrc
以运行安装在我的用户目录中的程序后,此问题就开始了。我知道这是错的,因为如果我删除~/.bashrc
,它就可以了。
什么环境变量会将/usr/include
视为包含路径?
答案 0 :(得分:3)
问题是我在PATH中有另一个GCC:
$ which gcc
/home/joey/gcc4ti/bin/gcc
当我尝试编译“Hello World”时,它正在运行68000的编译器,而不是我的系统编译器:D
我在~/.bashrc
:
export PATH="/home/joey/gcc4ti/bin:$PATH"
由于路径按顺序扫描,因此首先会看到gcc
中的/home/joey/gcc4ti/bin
。我改成了:
export PATH="$PATH:/home/joey/gcc4ti/bin"