I included <math.h>
library in my C source code. But I get compilation errors.
Error:
**undefined reference to 'sqrt'
**undefined reference to 'atan'
How can I link to <math.h>
in CMakeLists.txt
?
I included <math.h>
library in my C source code. But I get compilation errors.
Error:
**undefined reference to 'sqrt'
**undefined reference to 'atan'
How can I link to <math.h>
in CMakeLists.txt
?
Cmakelists.txt
file is like it:
cmake_minimum_required(VERSION 3.6)
project(project_name)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ")
set(SOURCE_FILES main.c)
add_executable(project_name ${SOURCE_FILES})
And you must add this command, for <math.h>
target_link_libraries(project_name PRIVATE m)
That's all.
Add below command in CMakeList.txt
target_link_libraries(${PROJECT_NAME} m)
You need to link math library explicitly to your executable. Like,
# Define the executable of the application !
add_executable(main ${SOURCE_FILES})
# 'm' for including math library explicitly
target_link_libraries(main m)
© 2022 - 2024 — McMap. All rights reserved.
-lm
to statically link the math library. The same might hold for other target systems if gcc is used. – Isom