使用 gcc 时在头文件中查找定义的好方法是什么?

2024-05-23

在使用 gcc 时,有人有推荐的方法在头文件中查找定义吗? 使用 MSVC 时,我只需右键单击并选择“转到定义”,这非常好。

我使用过 netbeans + gcc,它确实有代码帮助,包括到定义的超链接,所以这是一种选择。但是,我想知道是否有任何其他 IDE 具有该功能,以及不使用 IDE 时的最佳方法。


你可以运行Doxygen http://en.wikipedia.org/wiki/Doxygen生成基于 HTML 的源浏览器。这不需要用 Doxygen 风格的文档来注释代码。它适用于多种语言,包括C++, Java, and Markdown (.md文件转到“相关页面”)。

这是从命令行配置和启动 Doxygen 的方法(在 Linux 上测试)...

## basic
echo -e "SOURCE_BROWSER=YES\n EXTRACT_ALL=YES\n RECURSIVE=YES\n" |doxygen -
xdg-open html/index.html

or

## include diagrams and non-public content -- and launch browser immediately
echo -e "HAVE_DOT=YES\n CALL_GRAPH=YES\n CALLER_GRAPH=YES\n SOURCE_BROWSER=YES\n EXTRACT_ALL=YES\n EXTRACT_PRIVATE=YES\n EXTRACT_STATIC=YES\n RECURSIVE=YES\n SEPARATE_MEMBER_PAGES=YES\n GENERATE_LATEX=NO\n EXCLUDE_SYMLINKS=YES" |doxygen - && chromium-browser --new-window html/index.html

有一个配套程序叫做多西巫师 http://www.doxygen.nl/manual/doxywizard_usage.html它允许您浏览可用于自定义生成的 HTML 的许多配置选项。或者,您可以运行doxygen -g创建初始配置文件(其中包括详细提示)。

我建议使用以下非默认选项来生成源浏览器:

SOURCE_BROWSER=YES ## display source code
EXTRACT_ALL=YES ## display all items (not just "documented" ones)
RECURSIVE=YES ## include source found in subdirectories
SEPARATE_MEMBER_PAGES=YES ## optional -- each class member has its own page

一旦您打开主网页,您就可以浏览到感兴趣的来源(或使用搜索功能)。来源与相关声明的可点击链接进行交叉引用。


我已经多次遇到这个问题:doxygen 可以创建很长的文件名,Linux 加密的主目录有一个限制为 143 个字符 https://askubuntu.com/q/728465/11522。要解决这个问题,您可能需要编写html您家之外的文件夹。

一个快速而肮脏的解决方案是链接html到一个文件夹/tmp or /dev/shm——也许还有chmod提高数据安全性的权限。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 gcc 时在头文件中查找定义的好方法是什么? 的相关文章

随机推荐

  • 当Model和ViewModel一模一样的时候怎么办?

    我想知道什么是最佳实践 我被告知要始终创建 ViewModel 并且永远不要使用核心模型类将数据传递到视图 这就说得通了 让我把事情分开 但什么是Model 和ViewModel一模一样 我应该重新创建另一个类还是只是使用它 我觉得我应该重
  • 什么时候可以使用Javascript,什么时候不可以?

    不使用太多 javascript jquery 是个好习惯吗 我们应该尽可能避免它 为了良好的可访问性 吗 什么时候可以使用 JavaScript 什么时候不能在网页设计和开发中使用 JavaScript 在什么场景 什么条件下 Updat
  • 接下来无法加载 SWC 二进制文件

    当尝试使用 nextjs npm run dev 运行命令时显示错误 无法加载 SWC 二进制文件 请在此处查看更多信息 https nextjs org docs messages failed loading swc https nex
  • 如何让 Emma 或 Cobertura 与 Maven 一起报告其他模块中源代码的覆盖率?

    我有一个带有 Java 代码的多模块 Maven 设置 我的单元测试在其中一个模块中测试多个模块中的代码 当然 这些模块具有相互依赖性 并且在测试执行之前根据需要编译所有相关模块中的代码 那么 如何获得整个代码库覆盖率的报告 注意 我不是问
  • 读取依赖步行者输出

    I am having some problems using one of the Dlls in my application and I ran dependency walker on it i am not sure how to
  • 数组上的 Bash 子字符串扩展

    我有一组带有给定后缀的文件 例如 我有一组带有后缀的pdf文件 pdf 我想使用子字符串扩展来获取不带后缀的文件名 对于单个文件我可以使用 file test pdf echo file 0 4 要对所有文件执行此操作 我现在尝试 file
  • 如何将NSTextView的格式化内容转换为字符串

    我需要将 NSTextView 的内容从 Mac 应用程序传输到 iOS 应用程序 我使用 XML 作为传输文件格式 所以我需要将 NSTextView 的内容 文本 字体 颜色等 保存为字符串 有什么办法可以做到这一点吗 一种方法是存档
  • 如何从 Spring Boot 中排除依赖项

    我正在使用 Spring Boot 以下是我的 gradle 文件 buildscript ext springBootVersion 2 0 0 BUILD SNAPSHOT repositories mavenCentral maven
  • 具有不同尺寸图像的 Tensorflow 输入数据集

    我正在尝试使用不同大小的输入图像来训练完全卷积神经网络 我可以通过循环训练图像并在每次迭代时创建单个 numpy 输入来做到这一点 即 for image input label in zip image data labels train
  • Python bug - 或者我的愚蠢 - 扫描字符串文字时 EOL

    我看不出以下两行之间有显着差异 然而第一个解析 而后者则不解析 In 5 n Axis of Awesome In 6 n Axis of Awesome File
  • .NET 和 Mono 之间的开发差异

    我正在研究 Mono 和 NET C 将来当项目开发时我们需要在 Linux 服务器上运行代码 此时我一直在研究 ASP NET MVC 和 Mono 我运行 Ubuntu 发行版 想要开发 Web 应用程序 其他一些开发人员使用 Wind
  • 以编程方式创建 Blob 存储容器

    我有一个要求 即在创建公司时 在我的 storageaccount 中创建关联的 blob 存储容器 并将容器名称设置为传入的字符串变量 我已尝试以下操作 public void AddCompanyStorage string subDo
  • .htaccess 301 从旧 URL 结构重定向到新 URL 结构

    我正在尝试将用户重定向到新的 URL 结构 这是旧的 URL 结构 http www mywebsite com pants pant item 1234 http www mywebsite com pants pant item 123
  • 将 monaco 编辑器集成到 ember 辛烷中

    我尝试整合摩纳哥代码 https github com Microsoft monaco editor编辑到我的 ember 辛烷应用程序中 目前我正在使用 ESM 导入样式并确认手册 我安装了 webpack 加载器插件并将其集成到我的
  • 如何在Django中获取某个组的所有用户?

    我想获取 Django 组中所有用户的列表 例如 User objects filter group Staff 我在文档中的任何地方都找不到如何执行此查询 以下查询解决了我的问题 User objects filter groups na
  • 使用 Xpath 进行部分匹配

    我正在尝试创建一个搜索功能 允许使用 Xpath 按歌曲标题或流派进行部分匹配 这是我的 XML 文件
  • WordPress - 类别和子类别的嵌套列表

    我正在尝试显示带有嵌套子类别的 WordPress 类别列表 到目前为止 我只能获取父类别列表或不包括父类别的子类别列表 但我无法将两者连接在一起 这是我想要创建的结果 Parent Category 子类别 子类别 Parent Cate
  • 如何重置 SQL Server 中表的 IDENTITY 列? [复制]

    这个问题在这里已经有答案了 我怎样才能重置我的IDENTITY我已经填充的表中的列 我尝试过类似的方法 但它不起作用 WITH TBL AS SELECT ROW NUMBER OVER ORDER BY profile id AS RN
  • 如何从网站的 HTML 内容获取 XPath 表达式?

    我想在 Selenium 代码中使用 XPath 表达式 但我不知道如何从网站的 HTML 代码中获取它 我正在使用 Google Chrome 网络浏览器 最简单的方法是inspect您想要获取其 XPath 表达式的元素 然后单击突出显
  • 使用 gcc 时在头文件中查找定义的好方法是什么?

    在使用 gcc 时 有人有推荐的方法在头文件中查找定义吗 使用 MSVC 时 我只需右键单击并选择 转到定义 这非常好 我使用过 netbeans gcc 它确实有代码帮助 包括到定义的超链接 所以这是一种选择 但是 我想知道是否有任何其他