I have a simple daemon program -
https://gist.github.com/RAvenGEr/9563c051de35662d64baf26a8cd66d2e
I have added a --coverage flag in makefile as below
CC = g++
CFLAGS = -I. -Wall --coverage
all: daemon-name clean
daemon-name: daemon-name.o
$(CC) -o $@ $^
chmod 700 daemon-name
daemon-name.o: daemon-name.cpp
$(CC) -c $(CFLAGS) $<
clean:
rm *.o
When I compile the program I get -
Undefined symbols for architecture x86_64:
"_llvm_gcda_emit_arcs", referenced from:
___llvm_gcov_writeout in daemon-name.o
"_llvm_gcda_emit_function", referenced from:
___llvm_gcov_writeout in daemon-name.o
"_llvm_gcda_end_file", referenced from:
___llvm_gcov_writeout in daemon-name.o
"_llvm_gcda_start_file", referenced from:
___llvm_gcov_writeout in daemon-name.o
"_llvm_gcda_summary_info", referenced from:
___llvm_gcov_writeout in daemon-name.o
"_llvm_gcov_init", referenced from:
___llvm_gcov_init in daemon-name.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Note that program is compiling and linking correctly without --coverage flag, but I really need to see coverage of daemon-name.cpp
I believe the cause of error is linker somehow not interpreting --coverage flag. How can I add the --coverage flag to the linker in order to see code coverage.