cuda lib64和stubs目录下存在同名so 引起cmake错误

2024-06-05 14:38

本文主要是介绍cuda lib64和stubs目录下存在同名so 引起cmake错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

错误提示

CMake Warning at cmake/FindCUDA.cmake:1649 (add_library):
  Cannot generate a safe runtime search path for target test because
  files in some directories may conflict with libraries in implicit
  directories:

    runtime library [libcublas.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libcufft.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libcufftw.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libcurand.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libcusolver.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libcusparse.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnppc.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnppial.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnppicc.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnppicom.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnppidei.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnppif.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnppig.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnppim.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnppist.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnppisu.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnppitc.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnpps.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnvgraph.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnvjpeg.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64
    runtime library [libnvrtc.so.10.0] in /usr/local/cuda/lib64/stubs may be hidden by files in:
      /usr/local/cuda/lib64

  Some of these libraries may not be found correctly.
Call Stack (most recent call first):
  test/src/CMakeLists.txt:7 (cuda_add_library)
 

该提示显示cuda_add_library错误,但是实际上错误发生在 target_link_libraries链接时

set(CUDA_LIB_DIR ${CUDA_TOOLKIT_ROOT_DIR}/lib64)
file(GLOB_RECURSE CUDA_ALL_LIBS ${CUDA_LIB_DIR}/*.so)file(GLOB_RECURSE CU_SOURCES *.cu)
file(GLOB_RECURSE CPP_SOURCES *.cpp)
cuda_add_library(test SHARED
${CU_SOURCES}
${CPP_SOURCES}
)
target_link_libraries(gh2nvcodec -lstdc++fs ${CUDA_ALL_LIBS})

可以看到我很粗暴地链接所有cuda的所有lib,但是/usr/local/cuda/lib64目录下还有一个stubs目录,此目录下存在的so与lib64目录下的so同名,因此target_link_libraries出错,所以遍历/usr/local/cuda/lib64下so时需要把stubs下的so去掉,增加以下两句可以达到此效果

file(GLOB_RECURSE CUDA_STUBS_LIBS ${CUDA_LIB_DIR}/stubs/*.so)
list(REMOVE_ITEM CUDA_ALL_LIBS ${CUDA_STUBS_LIBS})

这篇关于cuda lib64和stubs目录下存在同名so 引起cmake错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1033337

相关文章

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

MySQL使用EXISTS检查记录是否存在的详细过程

《MySQL使用EXISTS检查记录是否存在的详细过程》EXISTS是SQL中用于检查子查询是否返回至少一条记录的运算符,它通常用于测试是否存在满足特定条件的记录,从而在主查询中进行相应操作,本文给大... 目录基本语法示例数据库和表结构1. 使用 EXISTS 在 SELECT 语句中2. 使用 EXIS

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

SpringBoot3匹配Mybatis3的错误与解决方案

《SpringBoot3匹配Mybatis3的错误与解决方案》文章指出SpringBoot3与MyBatis3兼容性问题,因未更新MyBatis-Plus依赖至SpringBoot3专用坐标,导致类冲... 目录SpringBoot3匹配MyBATis3的错误与解决mybatis在SpringBoot3如果

Python如何实现高效的文件/目录比较

《Python如何实现高效的文件/目录比较》在系统维护、数据同步或版本控制场景中,我们经常需要比较两个目录的差异,本文将分享一下如何用Python实现高效的文件/目录比较,并灵活处理排除规则,希望对大... 目录案例一:基础目录比较与排除实现案例二:高性能大文件比较案例三:跨平台路径处理案例四:可视化差异报

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录