Время привязки "неопределенная ссылка на" ошибки - PullRequest
1 голос
/ 29 июня 2010

Мне трудно писать make-файлы. У меня есть опыт использования переменных extern, когда я собираю проект без использования make-файлов, я не получаю абсолютно никаких ошибок и могу запустить программу. Но с того момента, как я написал make-файл для сборки проекта, я получаю undefined reference to ошибок.

У меня есть более 3 файлов, но для простоты я буду использовать 3 файла здесь, чтобы объяснить настройку.

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

}

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

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

При использовании make-файла я получаю undefined reference to ошибок во время компоновки, указывающих на File1.c и File2.c?

Я делаю какую-либо ошибку, которую затмение исправляет самостоятельно (когда makefile не используется) и какие поверхности я использую makefile?

Мой последний make-файл выглядит так -

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)

1 Ответ

2 голосов
/ 29 июня 2010

В вашем Makefile есть несоответствие. Ваша цель final зависит от main.o, тогда как вы предоставляете компоновщику $(OBJ1), который включает algorithm/main.o.

...