Many mathematical functions (pow
, sqrt
, fabs
, log
etc.) are declared in math.h
and require the library libm
to be linked. Unlike libc
, which is automatically linked, libm
is a separate library and often requires explicit linkage. The linker presumes all libraries to begin with lib
, so to link to libm
you link to m
.
You have to use it like target_link_libraries(ch4 m)
to link libm
to your target. The first argument must be a target. Thus it must be used after add_executable(ch4 ch4.c)
like:
add_executable(ch4 ch4.c)
target_link_libraries(ch4 m)