当前位置: 技术问答>linux和unix
为什么编出的动态库不能使用?
来源: 互联网 发布时间:2017-03-22
本文导语: 我使用是ubuntu 10.10,使用 gcc -fPIC -c my_func.c gcc -shared -o libmylib.so my_func.o 生成了libmylib.so,在同一目录下,我又写了一个测试代码,就是调用动态库中定义的一个函数,结果运行时总是提示: “ca...
我使用是ubuntu 10.10,使用
gcc -fPIC -c my_func.c
gcc -shared -o libmylib.so my_func.o
生成了libmylib.so,在同一目录下,我又写了一个测试代码,就是调用动态库中定义的一个函数,结果运行时总是提示:
“cannot open shared object file: no such file or directory”
奇怪,明明有这个共享库文件,为什么还提示不在呢?
gcc -fPIC -c my_func.c
gcc -shared -o libmylib.so my_func.o
生成了libmylib.so,在同一目录下,我又写了一个测试代码,就是调用动态库中定义的一个函数,结果运行时总是提示:
“cannot open shared object file: no such file or directory”
奇怪,明明有这个共享库文件,为什么还提示不在呢?
|
楼主是对程序运行时,链接动态库的过程不清楚。
请搜索ld.so.conf和LD_LIBRARY_PATH
放么把so文件放到/usr/lib,/usr/local/lib,/lib中
要么设置LD_LIBRARY_PATH为你的so放的位置
要么设置ld.so.conf添加上你的so放的位置
请搜索ld.so.conf和LD_LIBRARY_PATH
放么把so文件放到/usr/lib,/usr/local/lib,/lib中
要么设置LD_LIBRARY_PATH为你的so放的位置
要么设置ld.so.conf添加上你的so放的位置
|
.so放置的在哪个目录下? 你是如何调用的dlopen还是-l链接?
|
如果不会设置path
那么就使用-Wl,rpath的链接开关
那么就使用-Wl,rpath的链接开关
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。