I know many people have had this problem before. However, the solutions that I come across don't work for me. The problem also arises when using VSCode to build my code through G++, while many of the previous questions are concerning Xcode.
I'm coding an inheritance and polymorphism project for school, and when building main.cpp, I get this error:
duplicate symbol '_main' in:
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-21bf23.o
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-ac12d2.o
duplicate symbol 'checkAntNeighbors(Creature* (*) [10], int, int)' in:
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-21bf23.o
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-ac12d2.o
duplicate symbol 'runTurn(Creature* (*) [10], int)' in:
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-21bf23.o
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-ac12d2.o
duplicate symbol 'antDistances(Creature* (*) [10], int, int, int*)' in:
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-21bf23.o
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-ac12d2.o
duplicate symbol 'beetleDistances(Creature* (*) [10], int, int, int*)' in:
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-21bf23.o
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-ac12d2.o
duplicate symbol 'antMove(Creature* (*) [10], int, int, int*)' in:
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-21bf23.o
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-ac12d2.o
duplicate symbol 'beetleMove(Creature* (*) [10], int, int, int*)' in:
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-21bf23.o
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-ac12d2.o
duplicate symbol 'printGrid(Creature* (*) [10], char, char)' in:
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-21bf23.o
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-ac12d2.o
duplicate symbol 'populateGrid(Creature* (*) [10], std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)' in:
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-21bf23.o
/var/folders/ql/g3bvqchs5jl8svpmfdfqw2380000gn/T/main-ac12d2.o
ld: 9 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I also have other warnings but I don't think that they are root cause:
delete called on non-final 'Creature' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
Anywho, I have a base class Creature with derived classes Beetle and Ant. The Beetle and Ant header files inherit the Creature header file. Main inherits all header files. The only platform that builds my code is onlineGDB, so it has to be an IDE problem.
Any help would be greatly appreciated. Please let me know if I need to provide more information such as code and I will respond in a timely manner. Again, thanks to anyone that helps!