CentOS 7下安装使用lexbor C库编译找不到liblexbor问题问询
问题解决方法
错误根源
你遇到的报错是两个问题共同导致的,按顺序修复即可:
- 仅安装了lexbor运行时库,缺少编译必需的开发包,没有链接器需要的无版本号动态库软链接
- 编译时
-l参数写法错误,多输入了冗余字符
具体修复步骤
步骤1:安装lexbor开发包
CentOS官方源中,运行时库(仅用于运行已编译好的lexbor程序)和开发包(用于编译调用lexbor的代码)是分离的,你之前只装了运行时包,执行以下命令安装开发包:
sudo yum install lexbor-devel
安装完成后,系统/lib64目录下会生成liblexbor.so软链接,指向已有的liblexbor.so.2版本库。
步骤2:修正编译命令
-l参数的规则是自动补全前缀lib,因此liblexbor对应的参数是-llexbor,你之前误写为-liblexbor,相当于让链接器找不存在的libiblexbor.so库,自然报错。
修正后的编译命令如下,直接运行即可编译成功:
gcc example.c -llexbor -std=c99 -o example
额外说明(解释你之前操作无效的原因)
LD_LIBRARY_PATH是程序运行时查找动态库的环境变量,编译阶段链接器不会读取该变量,因此你之前设置这个变量对解决编译报错没有作用- 你设置
LD_LIBRARY_PATH时路径填了具体的库文件,该变量要求填写库所在的目录,写法本身也不正确 /lib64属于系统默认的库搜索路径,不需要额外加-L/lib64参数
内容的提问来源于stack exchange,提问作者p.luck
相关产品推荐
相关产品推荐

