fatal error: dynlink_nvcuvid.h: No such file or directory

本文解决CUDA10环境下OpenCV编译时遇到的dynlink_nvcuvid.h头文件缺失问题,通过替换为nvcuvid.h并更新条件编译,避免了频繁的构建过程。

cuda10 does not provide dynlink_nvcuvid.h any more.
解决方法:
查看出错在: opencv的modules目录下
modules/cudacodec/src/precomp.hpp
modules/cudacodec/src/frame_queue.hpp
modules/cudacodec/src/cuvid_video_source.hpp
modules/cudacodec/src/video_decoder.hpp
modules/cudacodec/src/video_parser.hpp
修改之后无需每次都要build只需要重新make即可
因为下载文件ippv挺慢的
#if CUDA_VERSION >= 9000
#include <dynlink_nvcuvid.h>
#else
#include <nvcuvid.h>
#endif
所以可以用头文件nvcuvid.h
nvidia-sdk下载链接地址https://developer.nvidia.com/designworks/video_codec_sdk/downloads/v8.2-ga2
下载 nvidia-sdk 将其中的 nvcuvid.h, cuviddec.h copy 到 /usr/local/cuda/include/,同时将上面的代码改为:
#if CUDA_VERSION >= 9000 && CUDA_VERSION < 10000
#include <dynlink_nvcuvid.h>
#else
#include <nvcuvid.h>
#endif
或者出现类似的错误 也是按照同样的方式进行更改
其实简单说就是放弃新的头文件dynlink_nvcuvid.h
使用原始的头文件 nvcuvid.h

当遇到 `fatal error: ffi_common.h: No such file or directory` 错误,意味着编译器在指定的搜索路径中未能找到 `ffi_common.h` 头文件。以下是一些可行的解决办法: ### 1. 确认文件是否存在 要先确认 `ffi_common.h` 文件是否确实存在于系统中。可以使用以下命令在系统里搜索该文件: ```bash sudo find / -name "ffi_common.h" ``` ### 2. 安装相关的开发包 `ffi_common.h` 通常是某个开发库的一部分。借助包管理器来安装对应的开发包,例如在基于 Debian 或 Ubuntu 的系统上可以使用以下命令: ```bash sudo apt-get update sudo apt-get install <package-name> ``` 在基于 Red Hat 或 CentOS 的系统上,可以使用以下命令: ```bash sudo yum install <package-name> ``` 这里的 `<package-name>` 要替换成包含 `ffi_common.h` 的实际开发包名称。 ### 3. 添加头文件搜索路径 要是文件存在,但不在默认的搜索路径中,可通过 `-I` 选项向编译器添加额外的搜索路径。例如,若文件位于 `/path/to/include` 目录下,编译命令可以写成: ```bash gcc -I/path/to/include your_source_file.c -o your_program ``` ### 4. 检查环境变量 确保 `CPATH` 环境变量包含了 `ffi_common.h` 文件所在的目录。可以使用以下命令临时添加路径: ```bash export CPATH=/path/to/include:$CPATH ``` 若要永久添加,可将上述命令添加到 `.bashrc` 或 `.bash_profile` 文件中。 ### 5. 检查 Makefile 如果是使用 Makefile 进行编译,要确保 Makefile 里的 `CFLAGS` 或 `CXXFLAGS` 包含了正确的头文件搜索路径。例如: ```makefile CFLAGS += -I/path/to/include ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值