- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经在 Ubuntu 16.04 上安装了 OpenCV 3.3.0。只想编译这段代码。
#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: warning: libopencv_core.so.2.4, needed by /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libopencv_gpu.so, may conflict with libopencv_core.so.3.3 /usr/bin/ld: /tmp/ccdhLGL0.o: undefined reference to symbol '_ZN2cv3gpu6GpuMat7releaseEv' //usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status
我该怎么办?
最佳答案
OpenCV 3.3 中没有opencv2/gpu/gpu.hpp
。如果您的代码可以编译,则意味着您的机器上同时安装了 OpenCV 2.4 和 3.3。
在 OpenCV 3.3 中,包括:
#include <opencv2/core/cuda.hpp>
然后使用
cv::cuda::GpuMat img;
查看详情 here .
编辑:我刚刚注意到你的编译方法。使用 pkg-config opencv --cflags --libs
时,您不再需要手动添加 libopencv 文件。
只需执行:g++ -o main gpu_thresh.cpp 'pkg-config opencv --cflags --libs'
关于c++ - libopencv_core.so.2.4 : error adding symbols: DSO missing from command line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46025725/
我有一个 DSO(mylibrary.so.0 库),带有一个标记为 extern "C" 的 func1 函数,我'我确定它已导出,因为 nm -D mylibrary.so.0 | grep fu
user@pc ~/hiddensymbols % cat main.cpp __attribute__((visibility ("hidden"))) int f_b1(void){ return
我正在学习谷歌测试。我下载了 gtest,运行命令 ./configure 和 make 并以 结束 $ sudo cp -a include/gtest /usr/include $ sudo cp
这个问题在这里已经有了答案: libpthread.so.0: error adding symbols: DSO missing from command line (16 个答案) Linking
假设我正在创建共享对象库 libz.so,其中包含一个头文件(例如 stdio.h)。作为 libc 库一部分的 stdio.h 代码在系统中静态链接。动态链接器如何解析从 DSO 到静态链接的 li
我正在尝试在 linux 下编译 qt ffmpeg 包装器简单编码/解码示例 QTFFmpegWrapper source # Set list of required FFmpeg librari
我遇到了一个令人难以置信的链接器问题。我有两个动态 .so 库,一个定义了 gpr_log(称为 libgpr.so),另一个使用它(称为 libgrpc++.so). 我正在尝试像这样链接一个可执行
我在将某些共享库与 g++ 链接时遇到问题。它给了我一个警告,例如: hidden symbol XXX in YYY is referenced by DSO /usr/lib/... 我已经阅读了
我想构建一个 OpenSSL RSA 引擎,从 this existing source code file 开始这是英特尔实现的一种更快的方法。首先,我想构建这段代码,所以我使用这些命令: gcc
我在设置共享库的可见性时遇到问题。我想寻求帮助以解决我的问题,如下所述: 我有一堆源文件,我想将它们构建为共享库: +Base |_Parameter | |_Parameter.h | |_Para
我尝试使用我的 asr 插件运行 unimrcpserver v1.0,它运行良好(在 Windows 7 上),但是当我尝试在另一台计算机(Windows Server 2003)中运行它时,我收到
我有一个正在运行的服务器(正在将其转变为开发服务器,但首先需要一些东西),所以我们不想重新编译 php 来破坏任何东西。 在新服务器上,我们有 mysql.so 和 mysqli.so 的动态扩展我无
关于包含静态成员变量的 C++ 模板类以及从动态库或共享对象中导出它们的问题很多。但这一个更深一些:如果有多个共享对象,每个共享对象都有自己的一组实例化,但可能使用来自另一个共享对象的实例化,该怎么办
我有一个已经编译/链接的 DSO 文件,它导出了一些确实必须隐藏的函数。当我尝试将我的代码链接到该库时 - 它会选择那些不需要的符号而不是我自己的符号。我无权访问源代码,因此我无法重建二进制文件并为不
我正在尝试通过使用 Cmake 再次编译所有内容,将一个 c++ 项目从 Windows 转换为 Debian。 我不太习惯在 Linux 上工作,但我已经设法正确安装了所有东西。 这是错误: /us
我编译php7如下 ./configure --enable-bcmath --with-bz2 --enable-calendar --enable-exif --enable-dba --enab
我最近试图从第 3 方 DSO 中隐藏一些符号,并遇到了用于创建“过滤器 DSO”的“--filter”LD 选项。来自ld manpage ,我的印象是动态链接器只会考虑过滤器 DSO 的 dyns
我尝试从我的实验室编译一个项目,我使用 ccmake 对原始代码进行的唯一更改是: CMAKE_CXX_COMPILER /usr/bin/clang++ CMAKE_CXX_FLAGS -f
我正在针对我编写的共享库编译程序。该库又依赖于 Boost::program_options(以及其他库)。当我编译我的程序时,我当然需要提及我的库,但是我得到一个 DSO 错误: g++ ism_c
这实际上似乎是一个常见问题,我以为我找到了答案,但由于某种原因它不起作用。我有一个使用 GTK2 库的项目,在第一次编译和链接时,我收到错误“libgtk-x11-2.0.so.0:添加符号时出错:命
我是一名优秀的程序员,十分优秀!