У меня есть проект, состоящий из двух файлов, main.c и logoff.c. Когда я пытаюсь скомпилировать их, я получаю эту ошибку:
gcc -c -g -Wall main.c
gcc -c -g -Wall logoff.c
gcc -o main -g -Wall main.o logoff.o
ld: duplicate symbol _logoff in logoff.o and main.o
У меня есть функция с именем logoff в logoff.c, но я искал в main.c текст «logoff» и ничего не нашел (функция еще даже не вызывается!).
Если я изменю имя функции на log_off, это сработает. В файле есть вторая функция, которая затем вызывает ту же ошибку, если ее имя также не изменено.
Есть ли причина, по которой это может произойти? У меня есть эта проблема на двух разных системах. Одна вещь, которая может иметь значение, заключается в том, что я использовал тот же файл logoff.c в другом проекте, но он не связан с этим.