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

源码安装CGNS出现undefined reference to `sincos'错误,求解决方法

解决CGNS源码安装中sincos未定义的链接错误

问题原因

sincos属于数学库函数,当前编译链接命令未显式链接数学库(libm),导致链接器无法找到该函数的定义。

解决方案

方案1:修改对应目录的Makefile

  1. 进入报错的工具目录:
cd /oa/apps/CGNS-4.4.0/src/cgnstools/utilities
  1. 编辑Makefile.unix,定位到生成plot3d_to_cgns的规则行(对应报错中的第73行),在链接命令末尾添加-lm参数:
    修改前:
gcc  -o plot3d_to_cgns plot3d_to_cgns.o cgnsutil.o \
binaryio.o getargs.o /oa/apps/CGNS-4.4.0/src/lib/libcgns.a

修改后:

gcc  -o plot3d_to_cgns plot3d_to_cgns.o cgnsutil.o \
binaryio.o getargs.o /oa/apps/CGNS-4.4.0/src/lib/libcgns.a -lm
  1. 重新执行编译:
make

方案2:全局配置时添加链接参数

如果多个CGNS工具都需要链接数学库,可以在配置阶段统一设置:

  1. 回到CGNS源码根目录,先清理之前的编译文件:
make clean
  1. 重新运行configure并指定链接参数:
./configure LDFLAGS="-lm"
  1. 重新编译:
make

方案3:适配老旧编译器(可选)

若使用的GCC版本较低,sincos函数需要定义_GNU_SOURCE宏才能启用,可在编译参数中添加该宏:
编辑Makefile.unix中的CFLAGS行,添加-D_GNU_SOURCE:

CFLAGS = -g -O2 -I../common -I/oa/apps/CGNS-4.4.0/src -D_GNU_SOURCE

然后再按照方案1添加-lm参数后重新编译。

内容的提问来源于stack exchange,提问作者mardar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 22:43:15