linux如何使用sin函数,Ubuntu下使用make编译c文件,不能调用sin cos 等函数问题的解决...

在写激光雷达程序的时候,考虑到后期还要综合其他的很多文件,所以想到用CMakeLists文件来管理这个工程,在刚写好对激光雷达的数据获取和转换为指教坐标系下点坐标时出现了点小问题:

CMakeFiles/main.dir/main.o:在函数‘main’中:

main.c:(.text+0x235):对‘cos’未定义的引用

main.c:(.text+0x275):对‘sin’未定义的引用

collect2: error: ld returned 1 exit status

make[2]: *** [src/main] 错误 1

make[1]: *** [src/CMakeFiles/main.dir/all] 错误 2

make: *** [all] 错误 2

我发现用make指令去编译c文件时会出现上面的错误,而且已经包含了math.h文件。然后上网查找各种资料,没有解决的办法,因为很多人都是用gcc指令编译的,后面添加一个-lm 命令符就行,经查找发现这是指向cos函数的包含路径的问题,表示告诉编译器到libm.so库文件中找这个函数,通常在/lib中。由此启发,我这里也是找不到math的包含路径,所以在src的CMakeLists文件中添加这条路径的,以找到依赖:

TARGET_LINK_LIBRARIES(main liburg.a libm.so)

再make就不会出错了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值