QtCreator 上对 opencv dnn 的未定义引用
Undefined reference to opencv dnn on QtCreator
错误
无法使用 QtCreator link OpenCV DNN 模块:/home/joseph/Documents/dev/dnn_opencv/utils.cpp:52:错误:对 `cv::dnn::dnn4_v20200609 的未定义引用::网络::网络()
上下文
你好,我正在尝试使用 OpenCV DNN (OpenCV 4.4.0) 模块加载一些模型,以便作为更大项目的一部分来做一些 classification/segmentation。
为此,我使用 QtCreator (5.15.0) 和 gpp (10.1.0)。 OpenCV 是使用 OpenCV-contrib 从源代码构建的。
我的 .pro 文件看起来像这样:
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
INCLUDEPATH += "/usr/local/include/opencv4"
LIBS += -L"/usr/local/lib/" \
-lopencv_highgui \
-lopencv_imgproc \
-lopencv_core
-lopencv_dnn
SOURCES += \
main.cpp \
utils.cpp
HEADERS += \
utils.hpp
到目前为止,该项目非常简单,我能够使用 OpenCV 提示图像,因此似乎找到了常用的库。但是,每当我在 DNN 模块中使用某些东西时,我都会遇到此错误:/home/joseph/Documents/dev/dnn_opencv/utils.cpp:52: error: undefined reference to `cv::dnn::dnn4_v20200609::Net: :Net()
这正在调用 cv::dnn::Net net;
使用或不使用命名空间。
我注意到在文件 /usr/local/include/opencv4/opencv2/dnn/version.hpp 中有一个标志 #define OPENCV_DNN_API_VERSION 20200609
对应于网络 class 可以找到,但我不知道这会把我带到哪里。
我对 Qmake 和 OpenCV 没有太多经验,所以这可能是一个简单的修复,但我希望得到一些帮助。谢谢!
对于那些面临同样问题的人,我设法正确安装它并使用 Cmake GUI 在 QtCreator 中使用它并检查所有正确的标志。我认为这是关于 OpenCV-contrib 模块的安装错误。
link 是标记正确标志的好教程:https://www.pyimagesearch.com/2018/08/17/install-opencv-4-on-macos/
此外,关于 error: no matching function for call to std::shared_ptr<cv::Formatted>::shared_ptr(const char*&)
的奇怪错误只是由于调用 print(...)
而不是 printf
或 cout
.
错误
无法使用 QtCreator link OpenCV DNN 模块:/home/joseph/Documents/dev/dnn_opencv/utils.cpp:52:错误:对 `cv::dnn::dnn4_v20200609 的未定义引用::网络::网络()
上下文
你好,我正在尝试使用 OpenCV DNN (OpenCV 4.4.0) 模块加载一些模型,以便作为更大项目的一部分来做一些 classification/segmentation。 为此,我使用 QtCreator (5.15.0) 和 gpp (10.1.0)。 OpenCV 是使用 OpenCV-contrib 从源代码构建的。
我的 .pro 文件看起来像这样:
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
INCLUDEPATH += "/usr/local/include/opencv4"
LIBS += -L"/usr/local/lib/" \
-lopencv_highgui \
-lopencv_imgproc \
-lopencv_core
-lopencv_dnn
SOURCES += \
main.cpp \
utils.cpp
HEADERS += \
utils.hpp
到目前为止,该项目非常简单,我能够使用 OpenCV 提示图像,因此似乎找到了常用的库。但是,每当我在 DNN 模块中使用某些东西时,我都会遇到此错误:/home/joseph/Documents/dev/dnn_opencv/utils.cpp:52: error: undefined reference to `cv::dnn::dnn4_v20200609::Net: :Net()
这正在调用 cv::dnn::Net net;
使用或不使用命名空间。
我注意到在文件 /usr/local/include/opencv4/opencv2/dnn/version.hpp 中有一个标志 #define OPENCV_DNN_API_VERSION 20200609
对应于网络 class 可以找到,但我不知道这会把我带到哪里。
我对 Qmake 和 OpenCV 没有太多经验,所以这可能是一个简单的修复,但我希望得到一些帮助。谢谢!
对于那些面临同样问题的人,我设法正确安装它并使用 Cmake GUI 在 QtCreator 中使用它并检查所有正确的标志。我认为这是关于 OpenCV-contrib 模块的安装错误。 link 是标记正确标志的好教程:https://www.pyimagesearch.com/2018/08/17/install-opencv-4-on-macos/
此外,关于 error: no matching function for call to std::shared_ptr<cv::Formatted>::shared_ptr(const char*&)
的奇怪错误只是由于调用 print(...)
而不是 printf
或 cout
.