职位描述
1.研究 C/C++ 编译工具链及构建体系,掌握 GCC、Clang/LLVM 等编译器以及大型项目从源码到二进制的完整编译流程;
2.支持包括国产平台在内的不同操作系统、CPU 架构、编译器及构建系统下 C/C++ 项目的编译环境分析与适配;
3.参与编译捕获工具的设计、开发和维护,实现编译器调用、编译命令、编译参数及环境信息的捕获与处理;
4.开展编译器前端定制和适配,支持特定平台C/C++项目生成供下游工具分析的标准中间表示;
5. 定位编译捕获、源码解析及中间表示生成过程中的问题,配合静态分析引擎及代码分析团队解决前端适配问题;
6.参与编译捕获相关需求分析、方案设计、测试验证及适配经验沉淀,参与相关技术文档、使用手册的编写和方案评审。任职要求
1.本科及以上学历,计算机、软件工程或相关专业;
2. 熟悉 C/C++ 语言及大型项目源码,具备较好的代码阅读、调试和工程实践能力;
3. 熟悉 GCC、Clang/LLVM、MSVC 等一种或多种 C/C++ 编译器及其基本工作机制;熟悉 Linux 开发环境及 Make、CMake、Ninja 等常用构建工具,能够分析大型项目构建过程;
4. 理解预处理、编译、汇编、链接等基本过程,能够分析编译参数、宏定义、头文件、库及环境变量等对编译结果的影响;
5.能够根据编译日志、编译命令、源码及环境配置快速定位和解决编译及适配问题;
6.熟悉 C++,掌握 Python、Shell 等至少一种脚本或工具开发语言,能够进行编译捕获及辅助工具开发;
7.了解 Clang/LLVM 架构及 LLVM IR、具有Clang/LLVM二次开发、编译器适配、交叉编译工具链、嵌入式/国产平台或 SAST/静态代码分析产品研发经验者优先。