1

我很难编写makefile。我有使用extern变量的经验,当我在不使用 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 的链接时间出现错误?

我是否犯了 Eclipse 自行修复的任何错误(当不使用 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 回答