0
私はファイルscanner.c
に定義された関数int get_token();
を持っていて、ヘッダファイルscanner.h
に宣言しています。今私はprecedence.h
と呼ばれる別のヘッダーにこのヘッダーファイルを含めました。最後にを呼び出すprecedence.c
ファイルにprecedence.h
を含めました。他のファイルからの私の機能が定義されていないことを叫ぶ
私はこの関数を呼び出し、make
を呼び出すと、次のエラースロー:
gcc precedence.c t_stack.c -o expr
/tmp/ccNgwuFu.o: In function `main':
precedence.c:(.text+0x730): undefined reference to `get_token'
collect2: error: ld returned 1 exit status
Makefile:8: recipe for target 'expr' failed
make: *** [expr] Error 1
を、これは私も変え、precedence.hとともにscanner.h含めて試してみましたが、私のMakefileの
CC=gcc
CFILES=precedence.c t_stack.c
HFILES=precedence.h t_stack.h token.h error.h
all: expr
expr: $(CFILES) $(HFILES)
$(CC) $(CFILES) -o [email protected]
ですMakefile。
私はCプログラミングに少し慣れています。
あなたはscanner.c' 'で' get_token'を定義しました。それから、あなたは 'scanner.c'への参照なしであなたのプログラムをリンクしようとしました。 'scanner.c'を' Makefile'に追加し、コンパイルしてリンクする必要があります。あるいは、 'get_token'を使わないでください。 –
私は間違ったメイクファイルを編集していました:D LOL ありがとう – angie