biocpp / biocpp-io

BioC++ Input/Output library
https://biocpp.github.io
BSD 3-Clause "New" or "Revised" License
8 stars 5 forks source link

[FIX] type_descriptor_is_int & value_type_id_2_type_descriptor must be inline #31

Closed Irallia closed 2 years ago

Irallia commented 2 years ago

In order to fix linkage problems

[100%] Linking CXX executable ../bin/iGenVar
duplicate symbol '__ZN3bio6detail22type_descriptor_is_intENS0_19bcf_type_descriptorE' in:
    CMakeFiles/iGenVar.dir/iGenVar.cpp.o
    ../lib/libiGenVar_lib.a(variant_output.cpp.o)
duplicate symbol '__ZN3bio6detail31value_type_id_2_type_descriptorENS_6var_io13value_type_idE' in:
    CMakeFiles/iGenVar.dir/iGenVar.cpp.o
    ../lib/libiGenVar_lib.a(variant_output.cpp.o)
ld: 2 duplicate symbols for architecture x86_64
collect2: error: ld returned 1 exit status
make[2]: *** [bin/iGenVar] Error 1
make[1]: *** [src/CMakeFiles/iGenVar.dir/all] Error 2
make: *** [all] Error 2

These functions type_descriptor_is_int() and value_type_id_2_type_descriptor() must be inline.

h-2 commented 2 years ago

We need to port this test from SeqAn3: https://github.com/seqan/seqan3/tree/master/test/header

It detects the kind of problems and prevents it from being introduced again.