在linux上编译一个基本的OpenCV + Cuda程序

2024-04-22

我过去在linux上使用过opencv,但没有使用过cuda。几个月来我一直在与以下编译错误作斗争。在尝试了许多解决方案后,我放弃并使用 Windows。不过,我真的很想在 Linux 上工作。这是我用来编译 opencv_gpu 网站上给出的阈值示例的命令。

nvcc `pkg-config --libs opencv` -L. -L/usr/local/cuda/lib -lcuda -lcudart `pkg-config --cflags opencv` -I. -I/usr/local/cuda/include threshold.cpp -o threshold

这是错误:

/tmp/tmpxft_0000171b_00000000-1_threshold.o: In function `main':
threshold.cpp:(.text+0x124): undefined reference to `cv::gpu::Stream::Null()'
threshold.cpp:(.text+0x156): undefined reference to `cv::gpu::threshold(cv::gpu::GpuMat const&, cv::gpu::GpuMat&, double, double, int, cv::gpu::Stream&)'
threshold.cpp:(.text+0x16d): undefined reference to `cv::gpu::GpuMat::download(cv::Mat&) const'
/tmp/tmpxft_0000171b_00000000-1_threshold.o: In function `cv::gpu::GpuMat::GpuMat(cv::Mat const&)':
threshold.cpp:(.text._ZN2cv3gpu6GpuMatC1ERKNS_3MatE[cv::gpu::GpuMat::GpuMat(cv::Mat const&)]+0x63): undefined reference to `cv::gpu::GpuMat::upload(cv::Mat const&)'
/tmp/tmpxft_0000171b_00000000-1_threshold.o: In function `cv::gpu::GpuMat::~GpuMat()':
threshold.cpp:(.text._ZN2cv3gpu6GpuMatD1Ev[cv::gpu::GpuMat::~GpuMat()]+0xd): undefined reference to `cv::gpu::GpuMat::release()'                                        
collect2: ld returned 1 exit status                                                                                                                                     
make: *** [all] Error 1   

为了帮助你,我必须下载并安装CUDA 4.0(使用驱动4.0.21)然后下载并编译OpenCV 2.3对于我的 Macbook Pro,Mac OS X 10.6.8.

示例代码来自OpenCV_GPU http://opencv.willowgarage.com/wiki/OpenCV_GPU通过以下方式在我的机器上成功编译:

g++ threshold.cpp -o threshold `pkg-config --cflags --libs opencv` -lopencv_gpu

你错过了旗帜-lopencv_gpu,不包括在pkg 配置.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在linux上编译一个基本的OpenCV + Cuda程序 的相关文章

  • C++ 中的可变参数函数声明中省略了逗号

    我习惯于这样声明可变参数函数 int f int n 读书时C 编程语言我发现书中的声明省略了逗号 int f int n the comma has been omitted 这个语法似乎是 C 特定的 因为当我尝试使用 C 编译器编译它
  • 从 bash 脚本返回值

    我想创建一个返回值的 Bash 文件 意思是 在脚本 script a bash 中我有一定的计算 脚本 script b bash 会调用它 script a bash return 1 5 script b bash a value s
  • 可空引用类型意外 CS8629 可空值类型对于临时变量可能为空

    在 C 8 项目中 我使用可为 null 的引用类型 并收到意外的 或者至少对我来说意外的 CS8629 警告 bool singleContent x DataInt null bool multiContent x DataNvarch
  • 如何使构造函数只能由基类访问?

    如果我想要一个只能从子类访问的构造函数 我可以使用protected构造函数中的关键字 现在我想要相反的 我的子类应该有一个构造函数 该构造函数可以由其基类访问 但不能从任何其他类访问 这可能吗 这是我当前的代码 问题是子类有一个公共构造函
  • ASP.NET Core 测试 - 没有方法 'public static IHostBuilder CreateHostBuilder(string[] args)

    我正在尝试在测试中设置我的应用程序并在中使用Startup s Configure method context Database EnsureCreated 并期待着Sqlite文件出现在Test sbin文件夹 这是我的代码 using
  • 通知另一个线程数据可用的最快方法是什么?有什么替代旋转的方法吗?

    我的一个线程将数据写入循环缓冲区 另一个线程需要尽快处理该数据 我本来想写这么简单的spin 伪代码 while true while a i do nothing just keep checking over and over proc
  • 一个阻塞但非模态的 QDialog?

    我有一堆图像 我想对其执行一些操作 处理完每个图像后 我的程序应该弹出一个对话框 提示用户是否要继续处理下一个图像或中止 在此之前 他们应该有机会对图像或参数进行一些手动更改 无论如何 他们必须能够访问应用程序的窗口 而调用对话框的方法的执
  • FileStream - “不支持给定路径的格式”

    我正在尝试使用EPPlus http epplus codeplex com 在我们的 LAN 上保存电子表格 我正在使用一个FileStream对象执行此操作 但是每当我尝试实例化该对象时 我都会收到错误 The given path s
  • 将迭代器取消引用到临时范围时出现非指针操作数错误

    Using auto empty line auto str return str size 0 我们做得到 auto line range with first non empty ranges view drop while range
  • 如何找到 QDockWidget 标题栏的高度?

    我正在尝试找到 a 的高度QDockWidget标题栏 以便对自定义布局进行一些智能调整大小 但标题栏不是单独的小部件 它内置于停靠小部件的私有布局中 并且没有成员可以访问它 还有其他方法可以找到它的高度吗 是的 您可以使用以下命令找到标题
  • 我应该在查询时调用 ToListAsync()

    不久前 我开始接触 C 并正在寻找一些如何编写代码的最佳实践 现在 我正在使用 EF Core 并具有以下代码 var details dbContext Details Where x gt x Name Button foreach v
  • 自定义文件属性

    我需要遵循 在我的申请中 我有文件 需要随时签入和签出的文件 当我从应用程序中签出文档时 我需要将自定义属性添加到文件中 以便稍后在签入文档时可以识别它 我尝试使用以下代码使用 DSOFile 中的 OleDocumentPropertie
  • 策略模式的现实示例

    我一直在读关于OCP原理 http en wikipedia org wiki Open closed principle以及如何使用策略模式来实现这一目标 我打算尝试向几个人解释这一点 但我能想到的唯一例子是根据 订单 的状态使用不同的验
  • 引用计数指针的STL类?

    这应该是微不足道的 但我似乎找不到它 除非不存在这样的类 智能指针的 STL 类 或类集 是什么 UPDATE 感谢您的回复 我必须说我很惊讶没有标准实施 我最终使用了这个 http archive gamedev net referenc
  • 在 Winforms 中,PreviewKeyDown() 从未针对任何键触发

    我最初试图让我的程序获取箭头键 上 下 左 右 的输入 但发现在 KeyDown 中这些键从未出现过 后来我发现我可以通过进入 PreviewKeyDown 函数并设置来启用箭头键 e IsInputKey true 及其周围的任何条件和逻
  • gcc总是做这种优化吗? (公共子表达式消除)

    作为示例 假设表达式sys gt pot atoms item gt P kind mass在循环内求值 循环只改变item 因此表达式可以简化为atoms item gt P kind mass通过将变量定义为atoms sys gt p
  • 自定义编译器警告

    在 Net 中使用 ObsoleteAtribute 时 它 会向您发出编译器警告 告诉您该对象 方法 属性已过时 应使用其他内容 我目前正在从事一个需要大量重构前员工代码的项目 我想编写一个自定义属性 可用于标记方法或属性 这些方法或属性
  • 为什么这些双精度数的返回值为-1.#IND?

    I have double score cvMatchContourTrees CT1 CT2 CV CONTOUR TREES MATCH I1 0 0 cout lt
  • 通过 boost::python 将 C++ 对象传递给 python 函数

    我想在 C 应用程序中使用嵌入 python 并调用 python 脚本中定义的函数 该函数的参数是一个 C 对象 看我的代码 class Test public void f std cout lt lt sss lt
  • 捕获 System.Exception 总是不好的做法吗?

    请考虑下面的代码 它抛出三个不同的异常 即 System Configuration ConfigurationErrorsException System FormatException and System OverflowExcept

随机推荐

  • Android 8 本机库崩溃

    自从 Android 8 Oreo 推出以来 我们的应用程序一直在不同的地方崩溃 所有 Play 商店崩溃报告都显示本机崩溃 最常出现的一个似乎是在本机库中 最常崩溃的设备是 Google Pixel Pixel XL 也出现过一些崩溃 我
  • Javascript 随机定位 Div 且不重叠它们

    我一直在研究一个随机的概念想法 即让 6 个云出现在一个页面上 并从数据库中提取随机评论 这部分很简单 但我发现确保 6 朵云不相互重叠非常困难 我对碰撞检测进行了很多研究 发现在将新的 随机定位 div 放置在页面上之前 没有真正合适的方
  • 我的车库里真的有一辆车吗? [复制]

    这个问题在这里已经有答案了 我是 Java 编程的新手 正在尝试掌握 OOP 所以我构建了这个抽象类 public abstract class Vehicle 和2个子类 public class Car extends Vehicle
  • 无法解析“adb version”的输出

    我使用 Ubuntu 11 10 和 Eclipse 进行 Android 开发 我已经创建了一个新项目 但它包含错误 Failed to parse the output of adb version 如果有人知道我该如何解决这个问题 我
  • 如何在swift中插入子层?

    我正在创建一个视图并向其添加渐变层 我有这个 import UIKit import QuartzCore let rect CGRect CGRectMake 0 0 320 100 var vista UIView init frame
  • 如何在 Clojure 中更新原子的向量元素?

    我有一个矢量原子 我想更新一个本身就是地图的条目 def vector atom atom swap vector atom conj id 1 name myname 我该如何只更新该成员 在可变的 Java 领域的思维方式中 我会做这样
  • Windows窗体中如何设置滚动条

    我在 net中有一个winform 我放置了太多控件并设置了表单的高度和宽度 但是 当我编译表单并减小表单的大小时 我的控件不可见 当我增加表单的大小时 控件在自己的位置可见 我希望在减小表单大小时出现滚动条 并在增加表单大小时使滚动条消失
  • 将网页中的表格导入 Excel

    我只有中高级的Excel水平和中级的VBA与Excel背景 我想要做的是从链接中显示的网页导入表格 http www admission unmsm edu pe res20130914 A 011 0 html http www admi
  • 如何使用 Spring Batch 进行聚合?

    我想弄清楚如何使用 Spring Batch 进行聚合 例如 我有一个包含姓名列表的 CSV 文件 name John Amy John Ryan 我想要文本文件中的名称计数 name count Amy 1 John 2 Ryan 1 根
  • 如何在错误的 API url 上返回 404? (ASP.NET 核心 + SPA)

    我需要在错误的 api 调用上返回 404 以便我可以在客户端 Angular 5 上为用户创建正确的响应 目前后端返回状态码200和index html 这会导致前端出现json解析错误 我使用 ASP NET Core 2 1 和 An
  • 如何在 JavaScript 中解析文本中的单词?

    在文本页面中 我想检查每个单词 当时阅读每个单词的最佳方式是什么 找到被空格包围的单词很容易 但是一旦你开始解析文本中的单词 它就会变得复杂 是否有一些已经构建的东西可以解析正则表达式或其他方法中的单词 而不是定义我自己的从文本中解析单词的
  • 您应该将应用程序属性放在 rebar erlang 应用程序中的什么位置?

    新手问题 我编写了第一个基于 rebar 的 erlang 应用程序 我想配置一些基本属性 例如服务器主机等 放置它们的最佳位置在哪里以及如何将它们加载到应用程序中 接下来的步骤是发布版本并在其中创建节点 节点在独立的 Erlang VM
  • 有人有使用私有 Launchpad 实例的经验吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有人已经在自己的服务器上安装并运行启动板了吗 我想要建议 因为我在网上找不到任何建议 此外 官方团队还对拥有自己的启动板发表了可怕的言论 他们还
  • 将google云函数连接到oracle数据库

    有谁知道如何将谷歌云函数 Python 连接到Oracle数据库 我尝试在云函数中导入cx Oracle库 但它显示一个错误 函数加载错误 DPI 1047 无法加载 Oracle 客户端库 libclntsh so 无法打开共享对象文件
  • 使用多个管道从 Python 执行 Shell 脚本

    我想在 python 脚本中执行以下 Shell 命令 dom myserver cat etc xen myserver cfg grep limited cut d f2 tr d 我有这个 dom myserver limit sub
  • 如何设置 GMT 日期的时、分、秒

    我有日期对象 我想从我的日期中清除小时 分钟和秒 请帮助我如何在 Javascript 中执行此操作 我做错了吗 var date Date Fri 26 Sep 2014 18 30 00 GMT date setHours 0 date
  • 如何模拟 AngularJS 指令的控制器

    给定一个具有外部控制器的指令 directive d1 function return controller d1controller restrict E link function scope element attributes co
  • 为什么长整型和小数之间的等于不可交换?

    我在 linqpad 中运行以下代码 long x long MaxValue decimal y x x Dump y Dump x y Dump y x Dump Object Equals x y Dump Object Equals
  • PyMongo find() 使用 $or 和 $regex 进行查询

    有一个 MongoDB 文档集合 其中包含有关书籍的信息 我需要使用以下标准查找文档 header包含子串 OR author包含子串 在 mongo shell 中 我使用这个查询效果很好 db books find or author
  • 在linux上编译一个基本的OpenCV + Cuda程序

    我过去在linux上使用过opencv 但没有使用过cuda 几个月来我一直在与以下编译错误作斗争 在尝试了许多解决方案后 我放弃并使用 Windows 不过 我真的很想在 Linux 上工作 这是我用来编译 opencv gpu 网站上给