设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
快捷导航
发布信息
搜索
搜索
首页
优惠促销
云服务器
独立服务器
站群服务器
母鸡服务器
服务器托管
全球云服务器
技术文档
联系
每日签到
本版
文章
帖子
用户
主机测评网
»
论坛
›
技术文档
›
其他教程
›
linux下运行程序提示error while loading shared libra ...
返回列表
发新帖
linux下运行程序提示error while loading shared libraries,找不到.so
[复制链接]
|
主动推送
60
|
0
|
2024-9-11 18:35:11
|
显示全部楼层
|
阅读模式
1,事情经过
我在一个单独的文件夹内编译一个main.c文件
gcc main.c -o ecrtexe -I/opt/etherlab/include -L/opt/etherlab/lib -lethercat
可以编译成功,但是当我运行时,如下
sudo ./main./main: error while loading shared libraries: libethercat.so.1: cannot open shared object file: No such file or directory
告诉我找不到so库
原因是我的libethercat.so.1库不在Linux系统的默认搜索库位置。2,解决办法
sudo gedit /etc/ld.so.conf
添加如下,并保存:
include /etc/ld.so.conf.d/*.conf/opt/etherlab/lib
其中/opt/etherlab/lib就是我自己的库所在的位置,
然后运行如下命令,让我们的添加生效,使所有的库文件都被缓存到文件/etc/ld.so.cache中。
sudo ldconfig
然后就可以正常编译了。
3,后话
其实,对于由普通用户自己编译生成的.so库文件,比较好的做法是:
将这些.so库文件的路径,用export指令加入到~/.bash_profile中的LD_LIBRARY_PATH变量中。LD_LIBRARY_PATH是程序运行需要链接.so库时会去查找的一个目录;
~/.bash_profile是登陆或打开shell时会读取的文件;
这样,每次用户登录时,都会把这些.so库文件的路径写入LD_LIBRARY_PATH,这样就可以正常地使用这些.so库文件了。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
我爱霍启刚掖
144
主题
0
回帖
10
积分
新手上路
新手上路, 积分 10, 距离下一级还需 40 积分
新手上路, 积分 10, 距离下一级还需 40 积分
积分
10
加好友
发消息
回复楼主
返回列表
网络技术教程
软件使用教程
Windows教程
Centos教程
Ubuntu教程
Linux其他教程
综合教程
其他教程
其他文档
服务器商家推荐
华夏互联
蓝速云
米图云
全球云
文章
1
苹果电脑MAC系统登录Windows远程桌面
2
Debian拓展硬盘工具。cloud-utils-growpart、xfsprogs
3
安卓Android手机怎么使用V2rayNG?
4
WINDOWS系统电脑怎么使用WINXRAY?
5
notepad++.8.5.7编辑器,代码编辑器
6
DirectX修复工具增强版_V4.3.0.40864版本DLL修复工具C++安装
7
Visual C++运行库合集包完整版VisualCppRedist_AIO_x86_x64
8
ChromeSetup谷歌浏览器一键安装