gcc/++编译so库

本文详细介绍了在Linux环境下,使用GCC/g++编译动态链接库so文件时的注意事项,包括-L选项指定库路径,-Wl,-rpath选项确保运行时找到库,以及在遇到找不到库文件和运行时加载库失败的错误时如何解决。正确编译指令示例:g++ -L./libs -o a.out -lhiredis -Wl,-rpath=./:libs *.c。" 90137116,7472829,VC与Lingo结合解决线性问题:从破解到QT移植,"['VC++', 'Lingo', 'QT开发', '数学优化', '软件工程']
摘要由CSDN通过智能技术生成

假如我要编译a.out,其中:

源文件:./main.c

库文件:./libs/libhiredis.so

库头文件目录:./

目标可执行文件:./a.out


主要理解三个编译选项

1. -L选项: 主要功能:在编译时,指明查找的库路径,形式为: g++ -L./libs -o a.out  -lhiredis  *.c

2. -Wl选项:  syntax to pass an argument to the option. 传递参数给接下来的编译选项,与3选项配合使用

3.  -rpath选项,  主要功能:在运行时,会去查找指明的库路径 形式为:g++ -Wl,-rpath=./:libs  -lhiredis *.c 或者g++ -Wl,-rpath,./:libs  -lhiredis *.c


错误一:如果少了-L选项(g++ -Wl,-rpath=./:libs  -lhiredis *.c),编译时报错,找不到相应的库文件

/usr/bin/ld: cannot find -lhiredis
collect2: ld returned 1 exit status
</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值