我知道这个标题有点愚蠢,但我不知道如何问其他问题。
我试图在我的头文件 (head.h
) 中包含标准库之一 (stdio.h
或 string.h
)然后它被包含在我的 main.c
脚本中。
在我的 Windows 7 x64 TCC ( http://bellard.org/tcc/ ) 上一切正常,但学院的 Solaris (我不知道,但它是严重的石头东西) gcc 4.0.2 (显然是 2005 年) 就是不行...... (我出现“ undefined symbol ”错误等)
main.c(摘录):
#include "head.h"
head.h(摘录):
// include librarys
#include <stdio.h> // standard input/output
#include <string.h> // operations on strings
#include <locale.h> // unicode string output
makefile(完整):
CX = tcc
IN = funcdef.o main.o
outfile: ${IN}
${CX} -o outfile.out ${IN}
funcdef.o: head.h funcdef.c
main.o: head.h main.c
我做错了什么?为什么 GCC 表现得如此奇怪,而 TCC 却不是:D? 预先感谢您的回答!
最佳答案
问题是 funcdef.c 中的几个语法错误导致它无法与 main.c 链接。
语法错误主要是 ANSI C 中的 C++ 代码,tcc 可以容忍,gcc 讨厌。 ^^
关于c - ANSI C 两级包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6019381/