Linux下编译代码错误: undefined reference to symbol 'cos@@GLIBC_2.2.5' //lib/x86_64-linux-gnu/libm.so.6: err

首先给出错误截图:
这里写图片描述

给出我的makefile文件

LIB:= -lopencv_highgui -lopencv_core -lopencv_imgproc -lopencv_legacy  -lstdc++ 
CXX:=gcc
main : lsd.c lsd_cmd.c main.cpp 
    $(CXX) -o main  lsd_cmd.c  lsd.c main.cpp  $(LIB)

这个makefile文件同事编译了.c和.cpp文件代码,这里要记录一下,gcc编译器进行C和Cpp混合编译的注意事项:引用一篇博客截图;
这里写图片描述
在我的代码中,这样的应用

#ifdef __cplusplus
extern "C" {
#endif

    double* LSD(double*parameter_D,const char ** parameter_S, double *image, int*nn, int X, int Y);  //这里写函数声明

#ifdef __cplusplus
}
#endif

好了,最后回归主题:错误怎么结局,就是在$(LIB)前面加上-ml具体原因我也不知道,有知道的可以在评论区解释一下,学习学习。

LIB:= -lopencv_highgui -lopencv_core -lopencv_imgproc -lopencv_legacy  -lstdc++ 
CXX:=gcc
main : lsd.c lsd_cmd.c main.cpp 
    $(CXX) -o main  lsd_cmd.c  lsd.c main.cpp -ml $(LIB)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值