当我在 opencv 3.1.0 中包含 dnn 模块时出现链接错误
Linking error when I include dnn module in opencv 3.1.0
我尝试使用 Opencv 3.1.0 的 dnn 模块进行一些对象检测,我在这里遵循教程:Opencv dnn 模块教程
据我了解,包含 dnn 模块的额外模块应该使用 Opencv 源代码构建。所以我遵循本教程:使用额外模块构建Opencv。
但是,当我尝试在 Visual Studio 2013 Microsoft中编译此简单代码时,
#include <opencv2dnn.hpp>
#include <opencv2core.hpp>
using namespace cv;
using namespace cv::dnn;
void main() {
}
1>------ 重建全部开始:项目:WithDnn模块,配置:调试Win32------ 1> DNN测试.cpp 1>DnnTest.obj : 错误 LNK2019: 未解析的外部符号 "private: void __thiscall cv::String::d eallocate(void(" (?deallocate@String@cv@@AAEXXZ( 在函数 "public: __thiscall cv::String::~String(void(" (??1String@cv@@QAE@XZ( 1>C:\Rescourse\Project\opencvdnn\WithDnnModule\Debug\WithDnnModule.exe:致命错误LNK1120:1 个未解析的外部 =
========== 全部重建:0 成功,1 失败,0 跳过 ==========
如果我不包含 opencv2\dnn.hpp,我可以成功构建代码。
请帮帮我。
我有一个非常相似的问题。事实证明,我试图链接到x64 opencv lib/dll,但我的项目设置为x86。
尝试在计算机上的自定义目录中使用本教程安装 OpenCV 3.10。如果您安装了任何其他OpenCV实例,这并不重要。
我想你会把它安装在/home/ubuntu/opencv310
:
对于安装,您应该通过放置 contrib 目录 somwhere 来运行以下命令,如下所示/home/ubuntu/opencv_contrib
:
ccmake -DCMAKE_INSTALL_PREFIX=/home/ubuntu/opencv310 -DWITH_CUDA=ON -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DOPENCV_EXTRA_MODULES_PATH=/home/ubuntu/opencv_contrib/modules ..
您将运行此示例:
g++ -I/home/ubuntu/opencv310/include -L/home/ubuntu/opencv310/lib caffe.cpp -lopencv_bgsegm -lopencv_bioinspired -lopencv_calib3d -lopencv_ccalib -lopencv_core -lopencv_datasets -lopencv_face -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_line_descriptor -lopencv_ml -lopencv_objdetect -lopencv_optflow -lopencv_photo -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_surface_matching -lopencv_text -lopencv_tracking -lopencv_videoio -lopencv_video -lopencv_videostab -lopencv_xfeatures2d -lopencv_ximgproc -lopencv_xobjdetect -lopencv_xphoto -lopencv_dnn -o caffe
现在您可以使用 ./caffe
.
您没有包含正确的库。这包括将为您提供所有OpenCV库:
包括"OpenCV2/OpenCV.hpp">
- 尝试导入pybind-opencv模块时出现libgtk错误
- 为什么当我解模块化时,这个C++代代码"效率较低"?
- 如果C++对象的类在另一个boost模块中声明,如何使用boost将指向该对象的指针返回到python
- 内联如何影响模块接口中的成员函数
- C++返回 Numpy 数组的 Python 扩展模块
- 当我尝试加载内核模块时,如何修复C++中的这个 malloc() 错误?
- 如何从线程中的不同模块调用函数?
- 如何使用 soong 命名空间来有条件地编译模块
- asn1c 不会从 asn.1 模块中提取八位字节字符串的默认值
- CMake - 模块 + 库混淆
- 特征 LLT 模块给出不正确的结果?
- 枚举进程模块在有效句柄上返回无效句柄
- 在 python 模块中导入子模块时PyImport_Import失败
- 将 PCL 链接到 Cython C++ 模块
- 即使直接从官方示例中复制,也找不到未知类型名称QML_ELEMENT和 QML 模块
- 电源功能模块化操作
- 如何告诉本机节点模块所需的dll存储在哪里?
- 如何为模块化应用程序实现C++插件系统
- 如果我想通过OpenCV dnn模块加载PyTorch的模型,我应该如何保存它
- 当我在 opencv 3.1.0 中包含 dnn 模块时出现链接错误