Ошибка компоновщика: повторяющиеся символы для архитектуры x86_64

У меня есть header1.h, включенный в raster2d.h, а затем raster2d.h включен в io.cpp и в raster2d.cpp. При компиляции я получаю следующую ошибку компоновщика`

   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 for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [raster2d] Error 1

Transform — это класс в header.h
Transform :: translate Transform :: scale & Transform :: rotate — это три функции в header1.h

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector