SimonKagstrom / kcov

Code coverage tool for compiled programs, Python and Bash which uses debugging information to collect and report data without special compilation options
http://simonkagstrom.github.io/kcov/
GNU General Public License v2.0
710 stars 109 forks source link

/usr/bin/ld: CMakeFiles/kcov.dir/engines/system-mode-engine.cc.o: undefined reference to symbol 'crc32' #382

Open zhuofeng6 opened 2 years ago

zhuofeng6 commented 2 years ago

it is some bug in compiling.

branch:master

[root@localhost kcov]# make
Consolidate compiler generated dependencies of target kcov_sowrapper
[  3%] Built target kcov_sowrapper
Consolidate compiler generated dependencies of target bash_execve_redirector
[  6%] Built target bash_execve_redirector
Consolidate compiler generated dependencies of target bash_tracefd_cloexec
[  8%] Built target bash_tracefd_cloexec
Consolidate compiler generated dependencies of target kcov_system_lib
[ 13%] Built target kcov_system_lib
[ 15%] Generating bash-cloexec-library.cc
[ 16%] Generating bash-helper.cc
[ 17%] Generating bash-redirector-library.cc
[ 18%] Generating html-data-files.cc
[ 20%] Generating kcov-system-library.cc
[ 21%] Generating library.cc
[ 22%] Generating python-helper.cc
[ 24%] Building CXX object src/CMakeFiles/kcov.dir/capabilities.cc.o
[ 25%] Building CXX object src/CMakeFiles/kcov.dir/collector.cc.o
[ 26%] Building CXX object src/CMakeFiles/kcov.dir/configuration.cc.o
[ 27%] Building CXX object src/CMakeFiles/kcov.dir/engine-factory.cc.o
[ 29%] Building CXX object src/CMakeFiles/kcov.dir/engines/bash-engine.cc.o
[ 30%] Building CXX object src/CMakeFiles/kcov.dir/engines/system-mode-engine.cc.o
[ 31%] Building CXX object src/CMakeFiles/kcov.dir/engines/system-mode-file-format.cc.o
[ 32%] Building CXX object src/CMakeFiles/kcov.dir/engines/python-engine.cc.o
[ 34%] Building CXX object src/CMakeFiles/kcov.dir/filter.cc.o
[ 35%] Building CXX object src/CMakeFiles/kcov.dir/gcov.cc.o
[ 36%] Building CXX object src/CMakeFiles/kcov.dir/main.cc.o
[ 37%] Building CXX object src/CMakeFiles/kcov.dir/merge-file-parser.cc.o
[ 39%] Building CXX object src/CMakeFiles/kcov.dir/output-handler.cc.o
[ 40%] Building CXX object src/CMakeFiles/kcov.dir/parsers/dummy-disassembler.cc.o
[ 41%] Building CXX object src/CMakeFiles/kcov.dir/parser-manager.cc.o
[ 43%] Building CXX object src/CMakeFiles/kcov.dir/reporter.cc.o
[ 44%] Building CXX object src/CMakeFiles/kcov.dir/source-file-cache.cc.o
[ 45%] Building CXX object src/CMakeFiles/kcov.dir/utils.cc.o
[ 46%] Building CXX object src/CMakeFiles/kcov.dir/writers/cobertura-writer.cc.o
[ 48%] Building CXX object src/CMakeFiles/kcov.dir/writers/codecov-writer.cc.o
[ 49%] Building CXX object src/CMakeFiles/kcov.dir/writers/json-writer.cc.o
[ 50%] Building CXX object src/CMakeFiles/kcov.dir/writers/coveralls-writer.cc.o
[ 51%] Building CXX object src/CMakeFiles/kcov.dir/writers/html-writer.cc.o
[ 53%] Building CXX object src/CMakeFiles/kcov.dir/writers/sonarqube-xml-writer.cc.o
[ 54%] Building CXX object src/CMakeFiles/kcov.dir/writers/writer-base.cc.o
[ 55%] Building CXX object src/CMakeFiles/kcov.dir/engines/clang-coverage-engine.cc.o
[ 56%] Building CXX object src/CMakeFiles/kcov.dir/engines/ptrace.cc.o
[ 58%] Building CXX object src/CMakeFiles/kcov.dir/engines/ptrace_linux.cc.o
[ 59%] Building CXX object src/CMakeFiles/kcov.dir/engines/kernel-engine.cc.o
[ 60%] Building CXX object src/CMakeFiles/kcov.dir/parsers/elf.cc.o
[ 62%] Building CXX object src/CMakeFiles/kcov.dir/parsers/elf-parser.cc.o
[ 63%] Building CXX object src/CMakeFiles/kcov.dir/parsers/dwarf.cc.o
[ 64%] Building CXX object src/CMakeFiles/kcov.dir/solib-handler.cc.o
[ 65%] Building C object src/CMakeFiles/kcov.dir/solib-parser/phdr_data.c.o
[ 67%] Building CXX object src/CMakeFiles/kcov.dir/system-mode/file-data.cc.o
[ 68%] Building CXX object src/CMakeFiles/kcov.dir/library.cc.o
[ 69%] Building CXX object src/CMakeFiles/kcov.dir/bash-redirector-library.cc.o
[ 70%] Building CXX object src/CMakeFiles/kcov.dir/bash-cloexec-library.cc.o
[ 72%] Building CXX object src/CMakeFiles/kcov.dir/python-helper.cc.o
[ 73%] Building CXX object src/CMakeFiles/kcov.dir/bash-helper.cc.o
[ 74%] Building CXX object src/CMakeFiles/kcov.dir/kcov-system-library.cc.o
[ 75%] Building CXX object src/CMakeFiles/kcov.dir/html-data-files.cc.o
[ 77%] Building C object src/CMakeFiles/kcov.dir/version.c.o
[ 78%] Linking CXX executable kcov
/usr/bin/ld: CMakeFiles/kcov.dir/engines/system-mode-engine.cc.o: undefined reference to symbol 'crc32'
/usr/bin/ld: /usr/lib64/libz.so.1: error adding symbols: DSO missing from command line
collect2: 错误:ld 返回 1
make[2]: *** [src/CMakeFiles/kcov.dir/build.make:826:src/kcov] 错误 1
make[1]: *** [CMakeFiles/Makefile2:234:src/CMakeFiles/kcov.dir/all] 错误 2
SimonKagstrom commented 2 years ago

This looks like some issue with libz, i.e., DSO missing from command line.

Googling a bit, perhaps this helps?

https://zhangboyi.gitlab.io/post/2020-09-14-resolve-dso-missing-from-command-line-error/

zhuofeng6 commented 2 years ago

ok, thanks, but i found kcov-40 is ok

SimonKagstrom commented 2 years ago

Good to hear that v40 is working! However, I can't see from the git changelog why that would make any difference.

How does the linking step look if you build with verbose mode? I.e., make VERBOSE=1