简体   繁体   English

OpenCV链接库-未定义参考

[英]Opencv linking libraries - Undefined Reference

I tried to compile opencv codes on raspberry pi 3.However, it gives always "undefined reference ... " error, i think there is a problem with linking. 我试图在raspberry pi 3上编译opencv代码。但是,它始终显示“ undefined reference ...”错误,我认为链接存在问题。

Compile: 编译:

g++ `pkg-config --libs --cflags opencv` Face_Detection.cpp

pkg-config opencv --libs: pkg-config opencv --libs:

-L/opt/lib/ -L/opt/Deneme/opencv/a/ -opencv_calib3d -opencv_core 
-opencv_features2d -opencv_flann -opencv_highgui -opencv_imgcodecs 
-opencv_imgproc -opencv_ml -opencv_objdetect -opencv_photo -opencv_shape 
-opencv_stitching -opencv_superres -opencv_videoio -opencv_video
-opencv_calib3d_pch_dephelp -opencv_contrib_pch_dephelp 
-opencv_core_pch_dephelp -opencv_features2d_pch_dephelp 
-opencv_flann_pch_dephelp -opencv_gpu_pch_dephelp  
-opencv_haartraining_engine -opencv_highgui_pch_dephelp
-opencv_imgproc_pch_dephelp -opencv_legacy_pch_dephelp
-opencv_ml_pch_dephelp -opencv_objdetect_pch_dephelp 
-opencv_video_pch_dephelp

pkg-config opencv --cflags: pkg-config opencv --cflags:

-I/opt/Deneme/Include/opencv -I/opt/Deneme/Include/

opencv.pc file: opencv.pc文件:

includedir=/opt/Deneme/Include/opencv
dir2=/opt/Deneme/Include/
libdir=/opt/lib/
libdir2=/opt/Deneme/opencv/a/

Name: opencv
Description: The opencv library
Version: 3.x.x
Cflags: -I${includedir} -I${dir2}
Libs: -L${libdir} -opencv_calib3d -opencv_core -opencv_features2d -         opencv_flann    -opencv_highgui -opencv_imgcodecs -opencv_imgproc -opencv_ml -opencv_objdetect -opencv_photo -opencv_shape  -opencv_stitching  -opencv_superres  -opencv_videoio  -opencv_video  -L${libdir2} -opencv_calib3d_pch_dephelp -opencv_contrib_pch_dephelp -opencv_core_pch_dephelp -opencv_features2d_pch_dephelp -opencv_flann_pch_dephelp -opencv_gpu_pch_dephelp -opencv_haartraining_engine -opencv_highgui_pch_dephelp -opencv_imgproc_pch_dephelp -opencv_legacy_pch_dephelp -opencv_ml_pch_dephelp -opencv_objdetect_pch_dephelp -opencv_video_pch_dephelp

error: 错误:

Face_Detection.cpp:(.text+0x94): undefined reference to `cv::imread(std::string const&, int)'

Face_Detection.cpp:(.text+0xd8): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'

Face_Detection.cpp:(.text+0xec): undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)'

Face_Detection.cpp:(.text+0x128): undefined reference to `cv::resize(cv::_InputArray const&, cv::_OutputArray const&, cv::Size_<int>, double, double, int)'

Face_Detection.cpp:(.text+0x1e8): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'

Face_Detection.cpp:(.text+0x218): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'

Face_Detection.cpp:(.text+0x250): undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)'

Face_Detection.cpp:(.text+0x26c): undefined reference to `cv::hconcat(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&)'

Face_Detection.cpp:(.text+0x298): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'

Face_Detection.cpp:(.text+0x2c8): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'

Thanks in advance. 提前致谢。

It was linker order error. 这是链接器顺序错误。 Try to change 尝试改变

g++ `pkg-config --libs --cflags opencv` Face_Detection.cpp

to

g++ Face_Detection.cpp `pkg-config --libs --cflags opencv`

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM