一、产生背景
最近在做一个稍微复杂点的图像软件,分了几个库和界面,然后在生成过程中出现如下情况:
/usr/bin/ld: CMakeFiles/two_cam.dir/UI/MainWindow.cpp.o: in function `MainWindow::procDetect(MainWindow*)':
/home/pi/two_cam/UI/MainWindow.cpp:203: undefined reference to `Calib3D::remap(cv::Mat&, cv::Mat&)'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/two_cam.dir/build.make:133:two_cam] 错误 1
make[1]: *** [CMakeFiles/Makefile2:111:CMakeFiles/two_cam.dir/all] 错误 2
make: *** [Makefile:84:all] 错误 2
当然这是经过排查后,最后留的示意。
二、说明
这个问题应该和vs里面找不到符号差不多,就是文件,链接拓展之类的问题,然后差了一些资料,回来检查,然后发现两个问题,一个是生成库的时候,某个cpp
的路径没写对,另一个就是函数声明了,但是没定义。
三、总结
- 1、add_executable()或者add_library()时候的路径没有写对。
- 2、函数已声明,但未定义,或者声明和定义不对应。
网友评论