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

相关文章

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模块没有目录

nginx配置错误日志的实现步骤

《nginx配置错误日志的实现步骤》配置nginx代理过程中,如果出现错误,需要看日志,可以把nginx日志配置出来,以便快速定位日志问题,下面就来介绍一下nginx配置错误日志的实现步骤,感兴趣的可... 目录前言nginx配置错误日志总结前言在配置nginx代理过程中,如果出现错误,需要看日志,可以把

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录