【发布时间】:2018-02-12 00:33:25
【问题描述】:
我已将 OpenCV 3.3.0 安装到 Ubuntu 16.04。只想编译这段代码。
#include <iostream>
using namespace std;
#include "opencv2/opencv.hpp"
#include "opencv2/gpu/gpu.hpp"
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <cmath>
using namespace cv;
int main(int argc, char* argv[])
{
try
{
int kernel_size = 3;
cv::Mat src_host = cv::imread("crack2.jpg");
cv::Mat gray_img, avg, kernel;
cv::gpu::GpuMat dst, src;
src.upload(src_host);
cv::gpu::threshold(src, dst, 128.0, 255.0, CV_THRESH_BINARY);
cv::Mat result_host;
dst.download(result_host);
std::cout<< "Done!!!" <<std::endl;
}catch(const cv::Exception& ex)
{
std::cout<<"Error: " << ex.what() << std::endl;
}
return 0;
}
g++ -o main gpu_thresh.cpp 'pkg-config opencv --cflags --libs' -lopencv_gpu -lopencv_core
g++ -L/usr/local/lib -o main gpu_thresh.cpp 'pkg-config opencv --cflags --libs' -lopencv_gpu -lopencv_core
我尝试用这些方式编译它,但仍然给出同样的警告和错误。
/usr/bin/ld:警告:libopencv_core.so.2.4,需要 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libopencv_gpu.so, 可能与 libopencv_core.so.3.3 /usr/bin/ld: /tmp/ccdhLGL0.o: 冲突 未定义对符号“_ZN2cv3gpu6GpuMat7releaseEv”的引用 //usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4: 添加错误 符号:命令行collect2中缺少DSO:错误:ld返回1 退出状态
我该怎么办?
【问题讨论】:
-
您是如何安装 OpenCV 3.3 的?您的机器上似乎有两个版本的 OpenCV。
-
从资源中,我在“make -j 4”中停止了第一次安装,因为我忘记了添加 WITH_CUDA=ON 标志,我之前没有在 ubuntu 中使用 c++ 和 opencv
-
另外,如果我运行这个 pkg-config --modversion opencv 它只显示 1 个结果
-
转到 chat.stackoverflow.com 并加入群组:
OpenCV Related。我在那里在线。