You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CLion中为编译器添加--lm参数解决sin()函数编译错误

解决CLion中使用sin()函数出现的链接错误(添加--lm参数)

我之前也碰到过一模一样的问题——在C语言里调用sin()、cos()这类数学函数时,GCC编译器需要显式链接数学库libm,也就是添加--lm参数,否则就会出现你遇到的链接错误。在CLion里最稳妥的解决方式是通过项目的CMake配置文件来设置,这样配置会永久生效,不用每次编译都手动调整:

  • 找到项目根目录下的CMakeLists.txt文件,双击打开它
  • 定位到定义可执行文件的那一行,比如你的项目里应该是add_executable(TEI2_A3 [你的源文件列表])
  • 在这一行的下方,添加如下代码:
    target_link_libraries(TEI2_A3 m)
    
    这里的m对应系统中的libm库,CMake会自动根据你使用的编译器(比如GCC)转换成对应的链接参数--lm
  • 点击CLion顶部工具栏中的Reload CMake Project按钮(或者使用快捷键Ctrl+Shift+O),让CLion重新加载构建配置
  • 重新编译你的项目,之前的链接错误应该就消失了

如果你只是想临时测试(不推荐,因为配置不会保存),也可以通过Run/Debug配置来添加参数:

  • 点击CLion右上角的运行配置下拉菜单,选择Edit Configurations...
  • 在打开的窗口中,找到你的项目配置,切换到Build标签页
  • 在CMake options里添加-DCMAKE_EXE_LINKER_FLAGS="-lm",然后保存配置再编译

补充说明:标准C库(libc)并不包含数学函数,这些函数被单独放在libm库中,所以必须显式链接才能正常使用。

内容的提问来源于stack exchange,提问作者Patrick.H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:16:03