Задать вопрос
@Nodar
Python, Ruby, JavaScript

Gcc multiple definition of ..., как правильно объявлять переменные, которые используются в нескольких файлах?

Всем привет. Добавил тег С++, тк проблема скорее всего общего характера для С и С++. Вникаю в С, на плюсиках пока что не пишу.
Есть Makefile

config_parser.o: config_parser.c ews.h
	gcc  -c config_parser.c

ews.o: ews.c ews.h
	gcc -c ews.c

ews: config_parser.o ews.o
	gcc --std=c99 config_parser.o ews.o -o ews


Суть ошибки, насколько я понимаю - компилятор говорит, что я несколько раз объявляю одну и ту же переменную/макрос.

Как правильно такое излечить?
Например, у меня есть config.h, который я включаю в несколько файлов через ews.h, и кое-где переопределяю некоторые значения.
  • Вопрос задан
  • 695 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@vilgeforce
Раздолбай и программист
Правильно так не делать. Вот скажете вы что в одном файле у вас foo = 1, а в другом foo = 0. И как компилятору знать в каком месте оно каким должно быть? В какой момент времени оно должно меняться с нуля на единицу? И вообще которое из двух подразумевается в каждой строчке кода...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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