g++(nvcc) 链接库文件
来源:互联网 发布:数控加工仿真软件 编辑:程序博客网 时间:2024/06/05 18:14
查了一晚上的资料终于把库文件给链接上了,这里做一下总结.
编译CUDA源程序发现cannotopen shared object file错误,后来发现cuda所要使用的库文件放在/usr/local/cuda目录下,而不是在默认的路径下,于是就在编译时用编译选项指定的库文件的目录,和所使用的库如下所示:
-L/usr/local/cuda/lib-lcudart ( 这里要说明我所要使用的库是libcudart.so.4)
设置的这个选项后又出现/usr/bin/ld :skippingincompatible /usr/local/cuda/lin/libcudart.so的错误,网上一查原来是因为我的机器是64位于该目录下32位的版本不兼容,cuda目录下有两个库目录lib和lib64,分别都有相应的文件,于是就把目录改成-L/usr/local/cuda/lib64,改完之后发现还是cannot open shared object file 错误,此时我是相当郁闷,为什么还是找不到呢,原来是-lcudart只能默认连接到libcudart.so文件上如果要连接到libcudart.so.4需要自己用ln -s编写一个符号连接,可是lib64下已经有了libcudart.so,根本无法建立这个符号连接,此时又在网上查了一番,发现了另外一种方法,将libcudart.so.4的目录添加到/etc/ld.co.conf中或者在 /etc/ld.so.conf.d/ 下新建一文件,如 XXX.conf ,其内容是libXXX.so.4所在的目录,然后运行ldconfig命令,这下问题终于解决了。
附带:
ldconfig是一个动态链接库管理命令
为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig
ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.
- g++(nvcc) 链接库文件
- g++(nvcc) 链接库文件
- linux g++ (二) 链接库文件
- nvcc gcc g++混合编译器编程
- nvcc gcc g++混合编译器编程
- nvcc、gcc、g++混合编译器编程
- linux下通过jni编译CUDA代码生成动态链接库遇到的问题 nvcc -fPIC
- g++如何链接gcc生成的静态库文件
- gcc与g++编译链接库文件兼容性
- nvcc编译.c文件的方法
- g++编译链接多个文件
- g++编译链接文件基础中的基础
- nvcc与g++的结构体填充方式不一致
- nvcc gcc g++混合编译器编程 (改掉原创错误)
- g++编译动态链接库
- g++ 加载静态链接库
- linux下g++ 编译时动态库和静态库的链接和头文件问题
- 折腾gcc/g++链接时.o文件及库的顺序问题
- Ubuntu ARM交叉编译工具链制作过程
- 那年,那场青春繁华梦
- 关于游戏服务器设计的一些领悟
- Javascript typeof 用法
- JAVA--第七周实验--输出24个希腊字母与26个大写英文字母--运用类的继承
- g++(nvcc) 链接库文件
- Script编程window对象以及this的用法
- 怎么理解HTTP协议是无状态协议
- 查找----二维数组的查找之杨氏矩阵
- Android之动画ViewPager小结(QQ续三)
- 你若安好
- javascript 之 push方法
- 查看进程的线程数
- IT++的信号源真差劲