c - ANSI C 两级包含

标签 c makefile include ansi-c

我知道这个标题有点愚蠢,但我不知道如何问其他问题。 我试图在我的头文件 (head.h) 中包含标准库之一 (stdio.hstring.h)然后它被包含在我的 main.c 脚本中。

在我的 Windows 7 x64 TCC ( http://bellard.org/tcc/ ) 上一切正常,但学院的 Solaris (我不知道,但它是严重的石头东西) gcc 4.0.2 (显然是 2005 年) 就是不行...... (我出现“ undefined symbol ”错误等)

ma​​in.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

ma​​kefile(完整):

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/

相关文章:

c - c中的可用内存问题删除了链表中的某些值

makefile - 如何使创建的包在 make menuconfig 上可用?

include - 在MPLAB X IDE中使用外部头文件

c - eclipse CDT glib 库包含错误

c - 在C中将单个字符串分成两个不同的字符串

java - C++ 和 Java 中 CRC32 的不同结果

makefile - 如何修改隐式GNUMake规则来编译文件?

c++ - Makefile - 用通配符替换

android - 为什么我们不应该将每个包含的 Android XML 布局包装在一个 <merge> 对中?

C:是否可以将指针关联到结构成员?