首先给出错误截图:
给出我的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)