我很难写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时,在指向File1.c和File2.c的链接时间内出现undefined reference to
错误?
我是否犯了eclipse自行修复的错误(当没有使用makefile时)以及使用makefile时哪些表面?
我的最终makefile看起来像这样 -
OBJ1 = algorithm / main.o algorithm / File1.o algorithm / File2.o
all: final
final: main.o algorithm/File1.o algorithm/File2.o
@echo "Linking - making Final"
$(CC) -o $@ $(OBJ1)
答案 0 :(得分:2)
您的Makefile中存在差异。您的final
目标取决于main.o
,而您将$(OBJ1)
提供给链接器,其中包含algorithm/main.o
。