Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 链接器错误:架构x86_64的符号重复_C++_G++_Linker Errors_Build Error - Fatal编程技术网

C++ 链接器错误:架构x86_64的符号重复

C++ 链接器错误:架构x86_64的符号重复,c++,g++,linker-errors,build-error,C++,G++,Linker Errors,Build Error,我在raster2d.h中包含一个header1.h,然后在io.cpp和raster2d.cpp中包含raster2d.h。当我编译时,我得到以下链接器错误` 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

我在raster2d.h中包含一个header1.h,然后在io.cpp和raster2d.cpp中包含raster2d.h。当我编译时,我得到以下链接器错误`

   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

是否在头中实现了所有对象都通用的函数?请显示一些代码:)(a)确保使用include guards和(b)头中定义的任何函数都需要内联和/或模板函数。是否在头中实现了函数,这对于所有对象都是通用的?请显示一些代码:)(a)确保使用include-guard和(b)头中定义的任何函数都需要是内联和/或模板函数。