最近用到一个第三方开源项目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

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

被折叠的 条评论
为什么被折叠?



