1

makefileを書くのに苦労しています。変数の使用経験がありexternます。makefileを使用せずにプロジェクトをビルドすると、エラーはまったく発生せず、プログラムを実行できます。しかし、プロジェクトをビルドするためにmakefileを作成したときから、undefined reference toエラーが発生しています。

私は3つ以上のファイルを持っていますが、簡単にするために、ここでは3つのファイルを使用してセットアップを説明します。

/************Project********/
/* main.c */
int x;
main()
{
...

}

/* File1.c*/
extern int x;
fn1()
{
 ...
 }

/* File2.c*/
extern int x;
fn2()
{
 ...
 }
/*******************************/

makefileを使用するundefined reference toと、File1.cとFile2.cを指すリンク時間中にエラーが発生しますか?

日食がそれ自体で修正する間違い(makefileが使用されていない場合)と、makefileを使用するときに表面化する間違いはありますか?

私の最終的なmakefileは次のようになります-

OBJ1=アルゴリズム/main.oアルゴリズム/File1.oアルゴリズム/File2.o

all: final

final: main.o algorithm/File1.o algorithm/File2.o
 @echo "Linking - making Final"
 $(CC) -o $@ $(OBJ1)
4

1 に答える 1

2

Makefileに不一致があります。ターゲットfinalはに依存しますが、を含むリンカーにmain.o与えます。$(OBJ1)algorithm/main.o

于 2010-06-29T11:35:38.157 に答える