【问题标题】:How to link <math.h> library using CMake?如何使用 CMake 链接 <math.h> 库?
【发布时间】:2017-03-04 22:18:30
【问题描述】:

我在我的 C 源代码中包含了 &lt;math.h&gt; 库。但是我得到了编译错误。

Error: 
**undefined reference to 'sqrt'
**undefined reference to 'atan'

如何在CMakeLists.txt 中链接到&lt;math.h&gt;

【问题讨论】:

  • 只是出于好奇——如果编译器是 gcc 并且目标系统是 Solaris,我可能需要使用编译器选项 -lm 来静态链接数学库。如果使用 gcc,其他目标系统也可能如此。
  • 是的,我知道。但我必须在编辑器上构建它。为此,我必须在 cmakelists.txt 中添加“math.h”

标签: cmake clion


【解决方案1】:

Cmakelists.txt文件是这样的:

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})

你必须添加这个命令,对于&lt;math.h&gt;

target_link_libraries(project_name PRIVATE m)

就是这样。

【讨论】:

  • 如果我得到:“CMakeLists.txt:57 (target_link_libraries) 中的 CMake 错误:无法为目标“my_target”指定链接库,这不是由该项目构建的。”。我错过了什么吗?
  • 它是非标准库,不是吗?可能,“target_link_libraries()”命令在标准目录中搜索库,但找不到您的库。也许,您可以添加库的完整路径。
【解决方案2】:

CMakeList.txt中添加以下命令

target_link_libraries(${PROJECT_NAME} m)

【讨论】:

  • 嗨@Esmaeill 你看过OP给出的答案吗 - 他们发现与这个答案提供的答案基本相同?如果您认为提供了一些新的见解,请使用这些额外的见解更新原始答案。
猜你喜欢
  • 2019-12-22
  • 1970-01-01
  • 1970-01-01
  • 2023-01-17
  • 1970-01-01
  • 2013-02-18
  • 1970-01-01
  • 1970-01-01
  • 2018-03-04
相关资源
最近更新 更多