c++ - Linker error: duplicate symbols for architecture x86_64 -


i have header1.h included in raster2d.h , raster2d.h included in io.cpp , in raster2d.cpp. when compile following linker error`

   g++ -g -i. -i/opt/local/include  -o raster2d.o -c raster2d.cpp    g++ -g -i. -i/opt/local/include  -o stb.o -c stb.cpp    g++ -g -i. -i/opt/local/include  -o io.o -c io.cpp    g++ -o raster2d raster2d.o simpleimage.o stb.o io.o  -l/opt/local/lib      duplicate symbol __zn9transform14multiplicatione6matrix in:        raster2d.o        io.o    duplicate symbol __zn9transform5scaleep7point2fff in:        raster2d.o        io.o    duplicate symbol __zn9transform6rotateep7point2ff in:        raster2d.o        io.o    duplicate symbol __zn9transform9translateep7point2fff in:        raster2d.o        io.o    ld: 4 duplicate symbols architecture x86_64    clang: error: linker command failed exit code 1 (use -v see invocation)    make: *** [raster2d] error 1 

transform class in header.h transform::translate transform::scale & transform::rotate 3 functions in header1.h


Comments