cgo里调用<math.h>函数的问题

今天工作上碰到个go和c利用cgo混合编程的问题,向各位高手请教下。

go程序中使用cgo调用现有产品的一个c语言实现的模块A的lib库文件。该模块A中调用了库函数pow,且在模块A的.c文件中已经include了<math.h>,并且模块A的lib库文件是可以编译生成的。

结果编译go程序提示undefined reference to pow。网上搜索了下,方法都是针对gcc编译c程序的,要在编译时加参数-lm。

那么,像我这种情况,在go里通过cgo调用c代码的话,应该怎么做呢?

谢谢指教。

阅读 6.6k
2 个回答

今天刚好也碰到了这个问题:
解决方法其实在go文件中(配置C的地方),加入参数就行:
添加#cgo LDFLAGS: -lm
同时我还碰到了“undefined reference to `dladdr”错误,?
解决方案是:
添加:#cgo LDFLAGS:-ldl

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题