c header defined implementation - Serbipunk/notes GitHub Wiki

 25 CMakeFiles/collocation_train.dir/CollocationCheckingInterface.cpp.o: In function `CollocationIOInfo_to_str[abi:cxx11](CollocationIOInfo&)':
 26 CollocationCheckingInterface.cpp:(.text+0x510): multiple definition of `CollocationIOInfo_to_str[abi:cxx11](CollocationIOInfo&)'
 27 CMakeFiles/collocation_train.dir/CollocationPrecomputeInterface.cpp.o:CollocationPrecomputeInterface.cpp:(.text+0x330): first defined here
 28 CMakeFiles/collocation_train.dir/CollocationInterface.cpp.o: In function `CollocationIOInfo_to_str[abi:cxx11](CollocationIOInfo&)':
 29 CollocationInterface.cpp:(.text+0x2ed0): multiple definition of `CollocationIOInfo_to_str[abi:cxx11](CollocationIOInfo&)'
 30 CMakeFiles/collocation_train.dir/CollocationPrecomputeInterface.cpp.o:CollocationPrecomputeInterface.cpp:(.text+0x330): first defined here
 31 collect2: error: ld returned 1 exit status
 32 src/collocation/CMakeFiles/collocation_train.dir/build.make:330: recipe for target '../bin/collocation_train' failed
 33 make[2]: *** [../bin/collocation_train] Error 1
 34 CMakeFiles/Makefile2:435: recipe for target 'src/collocation/CMakeFiles/collocation_train.dir/all' failed
 35 make[1]: *** [src/collocation/CMakeFiles/collocation_train.dir/all] Error 2
 36 make[1]: *** Waiting for unfinished jobs....
 37 CMakeFiles/collocationlib_ext.dir/CollocationCheckingInterface.cpp.o: In function `CollocationIOInfo_to_str[abi:cxx11](CollocationIOInfo&)':
 38 CollocationCheckingInterface.cpp:(.text+0x510): multiple definition of `CollocationIOInfo_to_str[abi:cxx11](CollocationIOInfo&)'
 39 CMakeFiles/collocationlib_ext.dir/CollocationPrecomputeInterface.cpp.o:CollocationPrecomputeInterface.cpp:(.text+0x330): first defined here
 40 CMakeFiles/collocationlib_ext.dir/CollocationInterface.cpp.o: In function `CollocationIOInfo_to_str[abi:cxx11](CollocationIOInfo&)':
 41 CollocationInterface.cpp:(.text+0x2ed0): multiple definition of `CollocationIOInfo_to_str[abi:cxx11](CollocationIOInfo&)'
 42 CMakeFiles/collocationlib_ext.dir/CollocationPrecomputeInterface.cpp.o:CollocationPrecomputeInterface.cpp:(.text+0x330): first defined here
 43 collect2: error: ld returned 1 exit status
 44 src/collocation/CMakeFiles/collocationlib_ext.dir/build.make:304: recipe for target '../lib/libcollocationlib_ext.so' failed
 45 make[2]: *** [../lib/libcollocationlib_ext.so] Error 1
 46 CMakeFiles/Makefile2:510: recipe for target 'src/collocation/CMakeFiles/collocationlib_ext.dir/all' failed
 47 make[1]: *** [src/collocation/CMakeFiles/collocationlib_ext.dir/all] Error 2
 48 CMakeFiles/collocation.dir/CollocationCheckingInterface.cpp.o: In function `CollocationIOInfo_to_str[abi:cxx11](CollocationIOInfo&)':
 49 CollocationCheckingInterface.cpp:(.text+0x510): multiple definition of `CollocationIOInfo_to_str[abi:cxx11](CollocationIOInfo&)'
 50 CMakeFiles/collocation.dir/CollocationPrecomputeInterface.cpp.o:CollocationPrecomputeInterface.cpp:(.text+0x330): first defined here
 51 CMakeFiles/collocation.dir/CollocationInterface.cpp.o: In function `CollocationIOInfo_to_str[abi:cxx11](CollocationIOInfo&)':
 52 CollocationInterface.cpp:(.text+0x2ed0): multiple definition of `CollocationIOInfo_to_str[abi:cxx11](CollocationIOInfo&)'
 53 CMakeFiles/collocation.dir/CollocationPrecomputeInterface.cpp.o:CollocationPrecomputeInterface.cpp:(.text+0x330): first defined here
 54 CMakeFiles/collocation.dir/main.cpp.o: In function `CollocationIOInfo_to_str[abi:cxx11](CollocationIOInfo&)':
 55 main.cpp:(.text+0x0): multiple definition of `CollocationIOInfo_to_str[abi:cxx11](CollocationIOInfo&)'
 56 CMakeFiles/collocation.dir/CollocationPrecomputeInterface.cpp.o:CollocationPrecomputeInterface.cpp:(.text+0x330): first defined here
 57 collect2: error: ld returned 1 exit status
 58 src/collocation/CMakeFiles/collocation.dir/build.make:330: recipe for target '../bin/collocation' failed
 59 make[2]: *** [../bin/collocation] Error 1

I guess we should not describe implementation in header which will be called by many files