-1

タイトルがなんとなくばかげていることは知っていますが、他にどのように質問すればよいかわかりません。stdio.h標準ライブラリ (またはstring.h) の 1 つをヘッダー ファイル ( )にインクルードしようとしています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

メイクファイル (完全):

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

私は何を間違っていますか?そして、TCC が :D ではないのに、なぜ GCC はそれほど奇妙な振る舞いをするのでしょうか? ご回答ありがとうございます。

4

1 に答える 1

0

問題は、funcdef.c のいくつかの構文ミスであり、main.c とリンクされていませんでした。

そして、構文ミスは主に ANSI C の C++ コードであり、tcc では許容され、gcc では嫌われていました。^^

于 2011-05-17T22:01:58.820 に答える