У меня есть три C файла, main.c
, function1.c
и function2.c
. Я компилирую их, используя gcc -o main main.c function1.c function2.c
. У меня есть вспомогательная функция helper()
, определенная в function1.c
. Так что function1.c
выглядит так:
void helper();
void function() {
...
}
void helper() {
...
}
Однако, когда я пытаюсь определить helper()
таким же образом в function2.c
, это выдает мне ошибку "duplicate symbol '_helper'
". Я предполагаю, что это потому, что я скомпилировал function1.c
и function2.c
вместе, поэтому function2.c
знает об определении helper()
в function1.c
, но я не могу вызвать helper()
в function2.c
. Я также не хочу определять helper()
в своем собственном файле, потому что в итоге я могу написать много таких вспомогательных файлов. Что было бы идеально, если бы у меня был helper.c
файл, содержащий функции helper1()
, helper2()
, et c, все они доступны с function1.c
и function2.c
. Кто-нибудь знает, как это сделать, или лучшую альтернативу?