在 c 中编程时,我大部分时间都使用 clang 进行编译。突然它停止工作了。每当我尝试编译某些东西时,它都会给我这个输出假设文件名是 test.c
clang test.c
In file included from test.c:1:
/usr/include/stdio.h:33:11: fatal error: 'stddef.h' file not found
# include <stddef.h>
^
1 error generated.
test.c 的来源是:
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char *argv[] )
{
printf("\nthis is a sample c program\n");
return EXIT_SUCCESS;
}
注意:在 gcc 等其他编译器上它仍然有效。我应该怎么做才能让 clang 恢复工作?
如果您需要有关系统的任何信息:我使用的是 Ubuntu 13.10 32 位。文本编辑器:Emacs。
我也尝试卸载clang然后重新安装仍然得到相同的错误。
我在“usr/include/linux”中找到了该文件,然后将其粘贴到“usr/include”中,它现在没有向我显示同一文件的错误,但要求另一个文件
In file included from test.c:1:
In file included from /usr/include/stdio.h:74:
/usr/include/libio.h:50:10: fatal error: 'stdarg.h' file not found
#include <stdarg.h>
^
1 error generated.
现在我尝试搜索新文件“”,并在不同的文件夹中找到了超过 1 个同名的文件,这让我感到困惑,这是我需要在 clang 想要的目录中复制粘贴的正确文件。
有没有其他方法可以解决头文件的问题?
现在我找到了 clang 的 config.h 文件。文件中负责包含文件的两个变量及其当前值如下:
/* Relative directory for resource files */
#define CLANG_RESOURCE_DIR ""
/* Directories clang will search for headers */
#define C_INCLUDE_DIRS "/usr/include/i386-linux-gnu:/usr/include/i686-linux-gnu:/usr/include"
但我不知道我应该替换什么值才能让它工作。这些是我可以完全重新配置clang的任何方式吗?