main.cpp:(.text+0x1180): undefined reference to `cv::randn(cv::_InputOutputArray const, cv::_InputA

Bertha ·
更新时间:2024-09-20
· 798 次阅读

在运行KalmanFilter的时候需要用到opencv的库,按照之前的方式在CMakeLists.txt中:

target_link_libraries(KalmanFilter ${OPENCV_LIBS} )

但是发现make的时候找不到opencv,报错如下:
main.cpp:(.text+0x1eb): undefined reference to cv::KalmanFilter::KalmanFilter(int, int, int, int)' main.cpp:(.text+0x245): undefined reference tocv::Mat::zeros(int, int, int)’
main.cpp:(.text+0x31a): undefined reference to cv::randn(cv::_InputOutputArray const&, cv::_InputArray const&, cv::_InputArray const&)' main.cpp:(.text+0x44f): undefined reference tocv::setIdentity(cv::InputOutputArray const&, cv::Scalar const&)’

以上省略相似的opencv undefined错误:
查找资料的时候发现,是因为在编译的时候,编译的参数配置不正确,并没有指定Lib目录的路径,导致编译的时候,静态链接库无法找到,可以通过添加上依赖的方式的解决,直接使用g++的命令:

g++ main.cpp -o test `pkg-config --cflags --libs opencv`

生成test可执行文件,通过。但是毕竟是工程化的东西,还是希望在CMakeLists里面更新下从而解决问题。
首先,通过pkg-config --cflags --libs opencv来查找opencv的库,显示如下:
-I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_cudabgsegm -lopencv_cudaobjdetect -lopencv_cudastereo -lopencv_dnn -lopencv_ml -lopencv_shape -lopencv_stitching -lopencv_cudafeatures2d -lopencv_superres -lopencv_cudacodec -lopencv_videostab -lopencv_cudaoptflow -lopencv_cudalegacy -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_photo -lopencv_imgcodecs -lopencv_cudawarping -lopencv_cudaimgproc -lopencv_cudafilters -lopencv_video -lopencv_objdetect -lopencv_imgproc -lopencv_flann -lopencv_cudaarithm -lopencv_core -lopencv_cudev
将上面的内容加入到CMakeLists里面,如下所示:

target_link_libraries(KalmanFilter -I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_cudabgsegm -lopencv_cudaobjdetect -lopencv_cudastereo -lopencv_dnn -lopencv_ml -lopencv_shape -lopencv_stitching -lopencv_cudafeatures2d -lopencv_superres -lopencv_cudacodec -lopencv_videostab -lopencv_cudaoptflow -lopencv_cudalegacy -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_photo -lopencv_imgcodecs -lopencv_cudawarping -lopencv_cudaimgproc -lopencv_cudafilters -lopencv_video -lopencv_objdetect -lopencv_imgproc -lopencv_flann -lopencv_cudaarithm -lopencv_core -lopencv_cudev)

终于编译通过,写个博客给自己备忘:)

[参考:(https://blog.csdn.net/wang7807564/article/details/78416809)]

up_up_Rui 原创文章 8获赞 7访问量 385 关注 私信 展开阅读全文
作者:up_up_Rui



x11 text main undefined TO randn const

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章
Olinda 2021-02-13
688