解决“fatal error: dynlink_nvcuvid.h: 没有那个文件或目录#include <dynlink_nvcuvid.h>“问题

2023-05-16

问题描述

系统:Ubuntu18.04

安装OpenCV 3.4.0

报错:

In file included from /home/zpj/CLionProjects/linuxidcbuild/modules/cudacodec/opencv_cudacodec_pch_dephelp.cxx:1:0:
/home/zpj/CLionProjects/opencv-3.4.0/modules/cudacodec/src/precomp.hpp:60:18: fatal error: dynlink_nvcuvid.h: 没有那个文件或目录
         #include <dynlink_nvcuvid.h>
                  ^~~~~~~~~~~~~~~~~~~
compilation terminated.
modules/cudacodec/CMakeFiles/opencv_cudacodec_pch_dephelp.dir/build.make:62: recipe for target 'modules/cudacodec/CMakeFiles/opencv_cudacodec_pch_dephelp.dir/opencv_cudacodec_pch_dephelp.cxx.o' failed
make[2]: *** [modules/cudacodec/CMakeFiles/opencv_cudacodec_pch_dephelp.dir/opencv_cudacodec_pch_dephelp.cxx.o] Error 1
CMakeFiles/Makefile2:7429: recipe for target 'modules/cudacodec/CMakeFiles/opencv_cudacodec_pch_dephelp.dir/all' failed
make[1]: *** [modules/cudacodec/CMakeFiles/opencv_cudacodec_pch_dephelp.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

如图所示:

原因:

系统安装的CUDA10中没有dynlink_nvcuvid.h文件

 

解决办法

1.下载NVIDIA-SDK,下载地址

https://developer.nvidia.com/designworks/video_codec_sdk/downloads/v8.2-ga2

下载完成之后解压缩,文件路径Video_Codec_SDK_8.2.16->Samples->NvCodec->NvDecoder,将其中的nvcuvid.h, cuviddec.h连个文件copy到/usr/local/cuda/include/中,终端中输入指令

sudo mv nvcuvid.h /usr/local/cuda/include
sudo mv cuviddec.h /usr/local/cuda/include

2.终端中输入指令进入报错提醒的文件目录中

cd /home/zpj/CLionProjects/opencv-3.4.0/modules/cudacodec/src/

终端中输入指令

vim precomp.hpp

将文件中的

#if CUDA_VERSION >= 9000
        #include <dynlink_nvcuvid.h>
    #else
        #include <nvcuvid.h>
    #endif

改为

#if CUDA_VERSION >= 9000 && CUDA_VERSION < 10000 
        #include <dynlink_nvcuvid.h>
    #else
        #include <nvcuvid.h>
    #endif

 

或者将nvcuvid.h文件copy到modules/cudacodec/src/下, 同时将上面代码改为

#if CUDA_VERSION >= 9000 && CUDA_VERSION < 10000 
        #include <dynlink_nvcuvid.h>
    #else
        #include "nvcuvid.h"
    #endif

在modules/cudacodec/src/precomp.hpp文件报错并修改之后,后续还有四个文件报错,依次是cuvid_video_source.hpp/frame_queue.hpp/video_decoder.hpp/video_parser.hpp,解决方法同上,然后就可以继续编译了

编译成功

 

参考博文

OpenCV CUDA 10 安装 dynlink_nvcuvid.h 问题解决方法

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

解决“fatal error: dynlink_nvcuvid.h: 没有那个文件或目录#include <dynlink_nvcuvid.h>“问题 的相关文章

  • 实体框架包括扩展返回大量数据

    我有两个实体 User 和 UserPermission User 实体包含所有常规字段 Id Username Email 等 UserPermission 实体有两个值 UserId 和 PermissionId 我编写了一个存储库方法
  • 如何包含文档根目录之外的文件?

    我想要做的是将 domain1 中的 file1 php 包含到 domain2 上的 file2 php 中 所以我想我应该做的是这样的 file2 php require once var www vhosts domain1 http
  • 使用 #include 和包含防护在单独文件中进行 C++ 继承

    我是 Stack Overflow 的新手 正在自学 C 但我仍然是一个初学者 在完成了我正在使用的书中的大部分内容 可能被认为是过时的和 或不是一本好书 后 我决定通过自己尝试来重新强化一些概念 仅在需要时参考这本书 但我似乎被卡住了 我
  • 具有单字母扩展名的 C++ 头文件有什么特别之处?

    C 标准在第 16 2 节 源文件包含 中包含以下规则 它以某种方式使单字符文件扩展名变得特殊 该实现应为由一个或多个组成的序列提供唯一的映射非数字 or digits 2 11 后跟一个句点 和一个单一的nondigit 第一个字符不能是
  • 将支持 bean 作为参数传递给 Facelet include

    我有一个可以在不同应用程序中使用的 Facelet 我不是要复制它 而是重复使用它 我需要传递将管理视图的支持 bean 作为参数 因为某些逻辑可能会根据使用它的应用程序而有所不同 我不想使用复合组件 而只是包含 Facelet 并指定哪个
  • 使用 php include 标题、导航和其他元素时的良好做法?

    我不知道专业的网页设计师通常如何分隔这些元素 像这样 或者就像这样 或者只是将我想要重复的所有元素放在一起 我应该在这些元素中使用 php 或 html 扩展吗 头部 导航等 我该怎么办
  • 在 PHP 中:如何使用 include() 函数哪个参数是可变的?

    我需要将 include 函数与变量一起使用 但是 当我尝试这样做时 我遇到了一些错误 Code year POST year month POST month day POST day include Event php year yea
  • Rust 使用 vs mod?

    我正在努力解决这些问题 use宣言 A 使用声明创建一个或多个与其他路径同义的本地名称绑定 通常 一个use声明用于缩短引用模块项所需的路径 这些声明可能出现在模块和块中 通常位于顶部 And mod item A 模块项是一个模块 用大括
  • PHP:可以包含 file_exists() 说不存在的文件

    在我的脚本中 我设置了包含路径 以便应用程序的另一部分也可以包含文件 检查文件是否存在 然后包含它 但是 在我设置包含路径后 file exists 报告该文件不存在 但我仍然可以包含相同的文件
  • 如何避免包含类实现文件?

    而不是做 include MyClass cpp 我想要做 include MyClass h 我在网上读到过not这样做被认为是不好的做法 简而言之单独编译 首先 让我们举一些简单的例子 struct ClassDeclaration c
  • 为什么 .gitignore 不包含以 ! 为前缀的文件

    我的 gitignore 文件内容如下 build glucosia xcodeproj glucosia xcodeproj project pbxproj core plot framework build core plot fram
  • PHP 基于当前文件路径动态包含

    我想找到一种方法来包含基于当前文件路径的一些文件 例如 我有 website com templates name1 index php 这个 index php应该是一个独特的文件 我将在不同深度的许多不同目录中使用它 所以我想让代码通用
  • 项目参考条件包含多个条件

    这是我的 csproj 文件的片段
  • 包设置不会传播到分布式的工作人员

    Info julia version julia version 1 6 0 lscpu root MyPackage lscpu Architecture x86 64 CPU op mode s 32 bit 64 bit Byte O
  • 编译器如何知道在哪里可以找到#include

    我想知道 Mac OS X Windows 和 Linux 上的编译器如何知道在哪里可以找到 C 头文件 具体来说 我想知道它如何知道在哪里可以找到带有 lt gt 括号 include Users Brock Desktop Myfile
  • 警告:require_once():http:// 包装器在服务器配置中被allow_url_include=0 禁用

    我试图通过以下方式在页面中包含 php 文件 require once http localhost web a php 我收到错误 Warning require once http wrapper is disabled in the
  • PHP 包含最佳实践问题

    我一直在学习 PHP 语法并进行练习 我有 NET 背景 因此母版页总是让我在处理页眉和页脚时变得非常简单 到目前为止 我有一个 mainHeader php 和 mainFooter php 其中有我的头部菜单和页脚 html 我创建了一
  • C++ 类,其基类和循环包含 [重复]

    这个问题在这里已经有答案了 文件 1 foo h ifndef FOO H define FOO H include baseclass h include bar h class Bar class Foo public baseclas
  • 经典 ASP #include virtual 不起作用

    我们正处于从 IIS6 2003 到 IIS8 2012 的迁移过程中 我们必须维护一些经典 ASP 以及 ASP 和 NET 应用程序 完整的应用程序似乎运行良好 例如 我进入 IIS 右键单击文件夹并执行 转换为应用程序 但我们的站点严
  • 如何在 Jinja2 中包含具有相对路径的模板

    我正在尝试在模板中包含同一文件夹中的另一个模板 为此 我只是在做 import header jinja2 问题是我不断收到TemplateNotFound error 我的模板文件夹看起来像 myProject templates arb

随机推荐