Соединение времени “неопределенная ссылка на” ошибки

Мне нелегко писать 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?

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

Мой заключительный make-файл похож на это -

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)
1
задан HaggarTheHorrible 29 June 2010 в 11:25
поделиться

1 ответ

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

2
ответ дан 2 September 2019 в 23:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: