С чего начать устранение неполадок с «дублирующим символом»?

#c #sfml #duplicate-symbol

Вопрос:

Я изучаю C на Mac и пытаюсь следовать вместе с разработкой игр SFML на примере книги. Любые очевидные места, где можно начать искать проблемы, когда я получу:

 duplicate symbol __Z2dpi in:
    /var/folders/f1/4ddx4sk171v4hp6s50c93zh40000gn/T/sfgamewindow-374355.o
    /var/folders/f1/4ddx4sk171v4hp6s50c93zh40000gn/T/statemanager-3f5acc.o
[ plus 34 more similar duplicate symbols]
 

?
Будет ли это иметь какое-либо отношение к #в том числе?

Это моя команда сделать:

 cd ~/Programming/CPP;
clang    -g -O0 -Wall -std=c  14 
-o Testgame         
-I. -I/Users/johnrebekah/Programming/SFML source/include 
-I/Users/johnrebekah/Programming/CPP/gameheaders 
-lsfml-window.2.5.1     
-lsfml-system.2.5.1     
-lsfml-graphics.2.5.1   
 "/Users/johnrebekah/Programming/CPP/gameheaders/sfgamewindow.cpp" 
 "/Users/johnrebekah/Programming/CPP/gameheaders/statemanager.cpp" 
 "/Users/johnrebekah/Programming/CPP/gameheaders/introstate.cpp" 
 "/Users/johnrebekah/Programming/CPP/gameheaders/eventmanager.cpp" 
 "/Users/johnrebekah/Programming/CPP/gameheaders/game.cpp" 
 "/Users/johnrebekah/Programming/CPP/testgame.cpp" 
 

Все перечисленные повторяющиеся символы взяты из первого файла в списке cpp в команде make в паре с различными другими файлами cpp…

Комментарии:

1. У вас где-нибудь есть символ, который называется dpi ? Если да, пожалуйста, покажите содержащий файл.

2. Ни один из перечисленных символов мне не понятен, это не то, что я написал в своих исходных файлах. Есть ли вероятность, что они из библиотеки SFML?

3. Подождите, я написал функцию отладки печати под названием dp… Я собираюсь попробовать это прокомментировать…

4.Согласно demangler.com __Z2dpi это функция под названием «dp», которая принимает целое число. И в сообщении об ошибке говорится, что оно определено в обоих /Users/johnrebekah/Programming/CPP/gameheaders/sfgamewindow.cpp и /Users/johnrebekah/Programming/CPP/gameheaders/statemanager.cpp

5. Я прокомментировал функцию верхнего уровня в своем собственном заголовке, который я включил, и теперь предупреждение о дублировании символа исчезло, но у меня есть следующее:` ld: не удается открыть выходной файл для записи: Testgame, errno=21 для архитектуры x86_64 лязг: ошибка: команда компоновщика не удалась с кодом выхода 1«