交叉编译cuda+tensorRT,链接时报错误:找不到libcuda.so库
1、交叉编译cuda+TensorRT时,链接时报错
找不到libcuda.so,但在当前目录确实已经存在该库了,但是就是找不到。
原因:
由于交叉编译采用了docker的方式,并利用了CMake的:CMAKE_SYSROOT 特性,即
cmake -DCMAKE_TOOLCHAIN_FILE=/home/xi/toolchain.cmake ,而toolchain.cmake中指定了:
set(CMAKE_SYSROOT "/home/aarch64rootfs") # sysroot路径
而我当时的做法是,将当前的目录挂载到docker内,这样外面的宿主机与里面的docker就可以共享当前目录,这样很方便,因此当时也把从Nvidia AGX Orin内的cuda和tensorRT的库拷贝到当前目录,作为依赖库,并指定了链接库的路径,编译时,g++文件检查通过了,但链接时,由于指定了CMAKE_SYSROOT因此不会链接当前的目录下的cuda和tensorRT库.
解决办法:
进入docker内部,将当前的依赖库全部拷贝至CMAKE_SYSROOT指定的根目录,并重新指定链接库的路径即可。
评论已关闭