Linux共享库配置

这个是我折腾比较久的地方了,尤其是想用一个好的IDE来写用例,但是动态库配置了好久;


1.Code::Blocks:

这个IDE比较轻量级,非常好用,容易上手,配置也很简单;

不足是觉得它的补全功能不太好,而且做大工程有些力不从心,调试很不方便;


配置:

在工程文件中右键->Build Options...->Linker Setting

Link libraries里加入共享库(.so .a)的路径,生成的执行文件依赖库路径就是这里加入的(绝对/相对路径,与这里保持一致)

Other linker options里可以添加额外的链接命令;


->Build Options...->Search directories

Compiler里加入头文件的路径;


至此,简单的code::blocks已经可以开始调试和使用测试用例了。


2.CodeLite:

这个IDE和VS非常非常非常像,连配置都差不多,功能多,调试方便;

不足是许多设置有些复杂


配置:

在工程文件右键->Settings->Compiler

Include Paths里加入头文件的路径;


->Settings->Linker

Linker Option加入链接命令;

Libraries Search Path中加入共享库搜索路径;

Libraries中填共享库名称,值得一提的是,codelite中Libraries名称是去掉前缀和后缀的,如:libDataBus.so填入的名称是Databus;

不足是这样添加生成的执行文件依赖库路径始终为系统路径,网上有人说修改Environment中的环境变量即可,但是我没有成功;

相对路径我的解决方法是,在Linker Options中加入路径即可(如:../DataBus/Release/libDataBus.so),Libraries Search Path和Libraries中不需要再添加了。


这种方法实际上是直接利用g++编译器的命令执行的,所以我觉得最好的解决方案始终是熟悉编译器的命令,不要过度依赖IDE的配置程序。


接下来发现codelite还不能调试,因为生成文件的路径在./Release下,向上一层找不到共享库,所以还需要修改一下->Common Settings->General里的配置:

->Intermediate Folder中间文件路径,就是*.o文件等等,建议不要和执行文件放在一起,很乱;

->OutPut File生成文件名称,生成的执行文件路径和名称;

->Executable to Run/Debug运行/调试路径名称,就是调试按钮时运行程序的路径和名称,名称最好和生成路径一致;

->Working Directory工作路径,指定当前工作目录所在路径,也是调试时程序认为自己的根目录;

调试程序先找Run/Debug路径,没找到执行程序后找Woring + Run/Debug路径;

做一下相应的配置就好了。


ps:

linux上查看可执行文件依赖库命令

$readelf -d xxx
$readelf -d xxx | grep NEEDED



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值