ANSI C двухуровневый включает - PullRequest
0 голосов
/ 16 мая 2011

Я знаю, что название как-то глупо, но я не знаю, как спросить еще. Я пытаюсь включить одну из стандартных библиотек (stdio.h или string.h) в мой заголовочный файл (head.h), который затем включается моим сценарием main.c.

Все отлично работает на моем Windows 7 x64 TCC (http://bellard.org/tcc/)), но солярис колледжа (я понятия не имею, но это серьезная штука) gcc 4.0.2 (очевидно, 2005) просто не работает ... (Я получаю ошибки "неопределенный символ" и т. Д.)

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? Заранее спасибо за ваши ответы!

1 Ответ

0 голосов
/ 18 мая 2011

Проблема заключалась в нескольких синтаксических ошибках в funcdef.c, которые приводили к тому, что он не связывался с main.c.

И синтаксические ошибки были в основном кодом C ++ в ANSI C, который допускался tcc и ненавидел gcc. ^^

...