chromium构建工具GN的坑:error: [chromium-style]、 exception handling disabled、undefined symbol等

在构建第三方开源项目bcc时,使用Chromium的GN构建系统遇到了一些问题,包括[chromium-style]错误、exception handling disabled警告和undefined symbol链接错误。解决方法包括禁用chromium-style检查,启用exception handling,以及处理库之间的ABI不兼容问题。通过修改GN配置和第三方库的编译选项,成功地解决了这些问题。

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

    最近用到一个第三方开源项目bcc(https://github.com/iovisor/bcc),由于某些原因,需要采用chromium的GN构建系统,将bcc一起构建进quic项目中来。阅读完谷歌官方的GN文档后,如下是重要的配置项:

executable("my_project") {                          
    sources = [#源码.c和.cc]
    include_dirs = [#头文件]
    lib_dirs = [ #增加链接时库的搜索目录]
    libs = [#增加链接时依赖的静态库和动态库]
    #还有很多其他配置例如cflags、configs等
    #configs下配置的参数是可以传递给依赖项的,其他参数直接定义的无法传递                                                   
}

配置完后,开始用gn构建,然后ninja编译了。然后一堆问题,只能一一去解决了。

1.error: [chromium-style]

   明显这是chromium特有的编写格式检查,用的是第三方库bcc,代码规范有很多不符合chromium规范要求的,怎么办呢?看来只能按着要求一一改第三方库了,具体每个错误如何改,官方链接有详细说明。

   我把第三方库报错的格式规范都改了,终于可以处理了,但是过程真的太费时费力了。还有没有不改第三方库源码的方法呢,答案是有的,通过深读chromium根目录build文件下全部的gn文件,发现如下构建代码:

config("find_bad_constructs") {
  if (clang_use_ch
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值