csv-parser icon indicating copy to clipboard operation
csv-parser copied to clipboard

Linker error in Debug mode, apprently due to "--coverage"

Open oschonrock opened this issue 4 years ago • 2 comments

This is the linker error... googling suggests, it is to do with --coverage

/usr/bin/ld: lib/libcsv.a(basic_csv_parser.cpp.o): in function `__llvm_gcov_writeout':
basic_csv_parser.cpp:(.text+0x7324): undefined reference to `llvm_gcda_start_file'
/usr/bin/ld: basic_csv_parser.cpp:(.text+0x7349): undefined reference to `llvm_gcda_emit_function'
/usr/bin/ld: basic_csv_parser.cpp:(.text+0x735c): undefined reference to `llvm_gcda_emit_arcs'
/usr/bin/ld: basic_csv_parser.cpp:(.text+0x736b): undefined reference to `llvm_gcda_summary_info'
/usr/bin/ld: basic_csv_parser.cpp:(.text+0x7370): undefined reference to `llvm_gcda_end_file'
/usr/bin/ld: lib/libcsv.a(basic_csv_parser.cpp.o): in function `__llvm_gcov_init':

.... (many more similar lines)

commenting out this line in csv-parser/CMakeLists.txt

  set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} --coverage -Og")

works around the problem

this is with clang-12 on ubuntu 20.04 and both ld and lld

oschonrock avatar Sep 14 '21 11:09 oschonrock

I met same problem. There is no problem with single include header file. But when I try to switch to a static library + common header file same error occured in my libraries. The reason I want to do it because single header brings some warnings I have to shut down (my project errors are treated as errors). Same OS, clang-12 (compiled by myself with compiler-rt), linker is lld. Please, disable code coverage flag by default just like you did with CSV_DEVELOPER. Thank you.

T-Maxxx avatar Sep 27 '21 18:09 T-Maxxx

Adding link_libraries(gcov) to CMakeLists.txt apparently fixes the issue.

ionovanton avatar May 02 '23 19:05 ionovanton