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

相关文章

SpringBoot中的404错误:原因、影响及解决策略

《SpringBoot中的404错误:原因、影响及解决策略》本文详细介绍了SpringBoot中404错误的出现原因、影响以及处理策略,404错误常见于URL路径错误、控制器配置问题、静态资源配置错误... 目录Spring Boot中的404错误:原因、影响及处理策略404错误的出现原因1. URL路径错

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

python 字典d[k]中key不存在的解决方案

《python字典d[k]中key不存在的解决方案》本文主要介绍了在Python中处理字典键不存在时获取默认值的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录defaultdict:处理找不到的键的一个选择特殊方法__missing__有时候为了方便起见,

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

android应用中res目录说明

Android应用的res目录是一个特殊的项目,该项目里存放了Android应用所用的全部资源,包括图片、字符串、颜色、尺寸、样式等,类似于web开发中的public目录,js、css、image、style。。。。 Android按照约定,将不同的资源放在不同的文件夹中,这样可以方便的让AAPT(即Android Asset Packaging Tool , 在SDK的build-tools目

easyui同时验证账户格式和ajax是否存在

accountName: {validator: function (value, param) {if (!/^[a-zA-Z][a-zA-Z0-9_]{3,15}$/i.test(value)) {$.fn.validatebox.defaults.rules.accountName.message = '账户名称不合法(字母开头,允许4-16字节,允许字母数字下划线)';return fal

【408DS算法题】039进阶-判断图中路径是否存在

Index 题目分析实现总结 题目 对于给定的图G,设计函数实现判断G中是否含有从start结点到stop结点的路径。 分析实现 对于图的路径的存在性判断,有两种做法:(本文的实现均基于邻接矩阵存储方式的图) 1.图的BFS BFS的思路相对比较直观——从起始结点出发进行层次遍历,遍历过程中遇到结点i就表示存在路径start->i,故只需判断每个结点i是否就是stop