How do I add the math
library to my CMake file? This post references adding a target link library, yet I am not too familiar with C. An Additional post - Could someone please demonstrate an example. Documentation I am using C and I receive an undefined reference to 'pow'
with the pow method of the math header.
cmake_minimum_required(VERSION 3.3)
project(CSCI-E-28-Unix-Linux-Systems-Programming)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES
CMakeLists.txt
getchar.c
main.cpp
hw0
more01.c)
#target_link_libraries(<math.h> m)
add_executable(main main.cpp)
add_executable(getchar getchar.c)
add_executable(more01 more01.c)
add_executable(argu print_all_arguments.c)
add_executable(chars chars.c)
add_executable(ch4 ch4.c)
Many mathematical functions (
pow
,sqrt
,fabs
,log
etc.) are declared inmath.h
and require the librarylibm
to be linked. Unlikelibc
, which is automatically linked,libm
is a separate library and often requires explicit linkage. The linker presumes all libraries to begin withlib
, so to link tolibm
you link tom
.You have to use it like
target_link_libraries(ch4 m)
to linklibm
to your target. The first argument must be a target. Thus it must be used afteradd_executable(ch4 ch4.c)
like: