开源组件与中间件的学习笔记2:bazel + gdb

本文介绍了Bazel的基本概念和与CMake的区别,并通过实例讲解了如何使用Bazel进行项目管理和编译。同时,文章还探讨了GDB的调试技巧,包括断点设置、查看局部变量等,帮助开发者解决代码调试难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

bazel编译

基本内容

小飞今天在调试一个代码, 头皮发麻, 第一次使用 gdb和bazel , 小飞感觉这东西真的难,看了一下新手教程一看就会, 一上手就不知道怎么搞了, 于是跑来问问老张, 这东西应该怎么看。

小飞: 老张, 最近在学bazel编译, 看别人代码中写的好复杂, 看不懂啊。

老张; 这东西上手是比较简单, 但是一般项目中用的比较复杂, 这样吧, 我们慢慢来梳理。 我先问问你什么是bazel, 和cmake有什么区别 。

小飞: bazel 就是一个项目管理的工具, 像java里面有maven, C++里面有pip install ,都是可以直接将你的包导入到头文件和库文件检索目录中,然后你项目中直接用就可以import了, 但是C++这方面如果你要用的话就的先去下载源码, 然后编译成为你自己机器中的二进制文件, 放进来默认索引目录。 当然你也可以直接拷贝别人的so文件和头文件到里面来, 然后直接使用, 但是一般这种so文件你看不到代码, 而且比较大, 别人都是直接给你提供源码, 自己编译的。 这样你查找代码也方便。

老张: 那你怎么编译别人的代码呢?

小飞: 这个就是一般用cmake, 也是类似bazel的工具, 或者用个脚本启动cmake, 然后编译完成将头文件和库放到索引目录。 但是听说cmake不支持分布式编译, 而且在项目管理上容易出现冗余, 所以现在很多大型的项目都是用bazel。

老张: 是的, bazel也是类似cmake的, 编译过程需要设置g++的命令, 和cmake最大的区别是可以像maven这些直接从开源网站上导入第三方包,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值