ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Sourcetrail 如何配置空 C/C++ 源组的待索引文件、Include 路径与编译器标志

2026/9/15 13:31:37 拓冰建站 浏览量
Sourcetrail 如何配置空 C/C++ 源组的待索引文件、Include 路径与编译器标志 Sourcetrail 如何配置空 C/C 源组的待索引文件、Include 路径与编译器标志【免费下载链接】SourcetrailSourcetrail - free and open-source interactive source explorer项目地址: https://gitcode.com/GitHub_Trending/so/Sourcetrail当你的 C/C 项目既不能从构建系统导出 JSON Compilation Database也不是 Visual Studio 工程时官方文档给出的做法是创建一个Create Empty的 C/C 源组Source Group手动指定待索引的文件、Include 路径与编译器标志再让 Sourcetrail 执行索引。本文按一次真实操作走通这条路径在 Project Setup Wizard 中配置这三类设置创建项目并启动索引最后用索引结果和错误列表验证配置是否生效。Sourcetrail 的 C/C 索引由 Clang 11.0.0 提供支持遇到加载 C/C 代码的兼容性问题文档指向 Clang 官方的语言兼容性说明。前提条件是已安装并能运行 SourcetrailWindows解压 zip 后运行setup.exe按向导安装macOS打开 dmg 把Sourcetrail.app拖入 ApplicationsLinux运行 tarball 中的Sourcetrail.sh或给 AppImage 赋予执行权限后运行。什么情况下选择 Create Empty 源组C 与 C 的源组设置类型相同共有三种From Compilation Database使用 CMake 时通过定义CMAKE_EXPORT_COMPILE_COMMANDS标志导出compile_commands.jsonVisual Studio 的 CMake 生成器不支持Make 项目用 Bear 在模拟构建过程中生成该文件Qt Creator 4.8 起可从 Build 菜单选择 Generate Compilation Database。Compilation Database 包含构建所需的信息源文件、Include 路径、编译器标志文档建议能用就用基于它创建的源组会在每次 refresh 时与 compilation database 的变化保持同步。From Visual Studio通过 Sourcetrail 的 Visual Studio 插件导出 Compilation Database后续步骤与上一致。Create Empty以上都不适用时才选择它即本文走通的路径。进入 Project Setup Wizard启动 Sourcetrail 后在 Start Window 点击New Project也可以用 Project 菜单的New Project项快捷键 Windows/LinuxCtrl N、macOSCmd N先填两项基本设置Sourcetrail Project Name项目名称同时是 Sourcetrail 生成的.srctrlprj文件的名字Sourcetrail Project Location.srctrlprj项目文件的存放位置。点击Add Source Group或 Source Group 列表下方的进入源组创建在下一步选择语言与源组类型后点Next继续。同一个对话框也用于事后修改从左侧列表选中某个 Source Group 即可编辑其内容与名称新增、-删除、☐复制还可以把某个源组的active标志设为 false使其在项目刷新时不被索引。配置待索引文件选择 C 或 C 语言、源组类型 Create Empty 后进入配置页。与索引哪些文件相关的设置有三项Files Directories to Index定义哪些文件和目录会被索引。填入一个目录会递归加入其中所有源文件和头文件如果项目源码在一处、而生成的源文件放在另一处需要把那个目录也加进来。Source File Extensions定义合法的源文件扩展名含点号例如.cpp。Sourcetrail 只尝试索引匹配这些扩展名的文件。Excluded Files Directories定义要从索引中排除的文件和目录。支持两个通配符文档给出的匹配示例是*表示除\或/之外的字符src/*/test.h匹配src/app/test.h但不匹配src/app/widget/test.h和src/test.h**表示任意字符src**test.h同时匹配src/app/test.h、src/app/widget/test.h和src/test.h。这些路径都支持环境变量写法为${VARIABLE_NAME}或%VARIABLE_NAME%设置表中以${ENV_VAR}出现ENV_VAR即变量名的占位写法替换为你系统里真实的变量名即可。配置 Include 路径Include Paths用于解析被索引源文件和头文件中的#include指令通常对应编译器的-I或-iquote标志。文档给出的填写规则如果项目中所有#include指令都相对于项目根目录就把根目录加进来如果项目还包含外部库的文件也要加入对应目录。文档示例是path/to/boost_home/include即把示例中的库路径替换为你实际使用的外部库的 include 目录。Global Include Paths在你的所有项目中生效并与项目级 Include Paths 叠加使用通常对应-isystem标志适合放系统头文件路径。该字段提供自动检测文档说明支持对 Clang、GCC 和 Visual Studio 编译器的自动检测也可以手动添加。需要手动找系统头文件位置时文档按平台给出方法Linux运行gcc -x c -v -E /dev/null或clang -x c -v -E /dev/nullmacOS运行gcc -x c -v -E /dev/null两个命令的输出中编译器的头文件搜索路径位于这两行之间#include ... search starts here: . . . End of search list.Windows系统头文件通常随编译器提供。使用 Visual Studio IDE 时位于path_to_visual_studio/VC/include/path_to_visual_studio为 Visual Studio 安装目录的占位替换为实际安装路径不使用 Visual Studio 时可在C:/Program Files (x86)/Windows Kits/的子目录中查找。macOS 上另有两个只与该平台相关的字段Framework Search Paths 与 Global Framework Search Paths用于定位项目使用的.framework文件后者同样作用于所有项目。配置编译器标志与其他编译选项Compiler Flags定义索引期间使用的额外编译器标志要带上前导短横线。文档示例-DRELEASE会为RELEASE增加一个#define。同一页面还有几个与编译相关的选项Standard索引使用的语言标准通常已预选最近的标准Cross-compilation勾选Use specific target后在下拉框中指定目标平台具体目标平台写法参考 clang 交叉编译文档Precompiled Header File指定用于生成 Precompiled Header File 的头文件路径PCH 会在索引前作为预索引步骤生成不提供路径则不生成Precompiled Header Flags定义是否复用已提供的编译器标志来生成 PCH以及只为 PCH 生成额外定义的标志。用 Path List Box 添加路径页面上所有路径字段都是 Path List Box 控件交互方式一致点图标添加一行新路径点-删除选中的行点击某行选中后可直接键入行内的...会打开文件对话框供选择文件或目录可以从文件系统直接把文件/目录拖进框内一次添加多个路径点右下角的钢笔图标进入纯文本编辑每行一个列表项编辑完点Save保存Cancel放弃修改。创建项目并启动索引配置完成后在 Project Setup Wizard 点击Create关闭窗口并创建项目。随后 Sourcetrail 会询问是否开始索引点击Start并等待完成索引期间进度显示在 Indexing Dialog 和 Status Bar 中。Start Indexing Dialog 会先显示待索引与待清除的文件数量并提供刷新模式Updated files重新索引自上次索引以来被修改的文件、依赖这些文件的所有文件以及新增文件Incomplete updated files在前者基础上加上上次索引时出过错的文件All files删除旧索引并重新索引全部文件。索引进行中的 Indexing Dialog 显示已索引文件数、最后开始索引的文件、错误数量和百分比估计点Stop或按ESC可中断之后可以通过 refresh 继续。索引结束后弹出 Finished Indexing Dialog给出已索引文件、耗时与错误的信息。验证配置是否生效索引完成且没有错误时Sourcetrail 在 graph view 中展示所有已索引符号的概览并在 code view 中显示一些统计信息说明待索引文件已被正确拾取。如果索引产生错误status view 会列出错误列表点击状态栏右侧的 errors 标签或错误表中的某一行可以在 code view 中查看错误位置。Errors Tab 提供以下字段字段说明TypeERROR 或 FATAL。FATAL 错误会使索引器在该错误处停止导致大量信息缺失Error message错误消息File出错的文件Line number错误行号Indexed该文件是否属于被索引的文件Translation Unit索引过程中产生该错误的源文件点击列头可按字段排序下方复选框可按条件过滤。错误常见的原因是#include无法解析或缺少宏定义——回到源组设置补充 Include Paths 或 Compiler FlagsErrors Tab 里点Edit Project可直接打开 Edit Project Dialog然后用RefreshF5macOS 为Cmd R重新索引变更文件及其依赖文件。注意只要某个具体文件没有变化Sourcetrail 就不会重新索引它这种情况使用 Edit 菜单中的Force Refresh选项。也可以选择不修复错误、带着不完整索引继续使用。限制与注意Global Include Paths作用于所有项目而不是单个项目项目专属的 include 目录应放在项目级Include Paths中Sourcetrail 只尝试索引Source File Extensions中列出的扩展名匹配的文件遗漏的扩展名意味着对应文件根本不会被索引如果项目能够导出compile_commands.json优先使用 Compilation Database 源组可省去手动维护 Include 路径与编译器标志索引使用的语言标准由Standard设置决定C/C 的语言特性支持边界以 Clang 11.0.0 的兼容性说明为准。【免费下载链接】SourcetrailSourcetrail - free and open-source interactive source explorer项目地址: https://gitcode.com/GitHub_Trending/so/Sourcetrail创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考