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

标签 c++ windows code-assist

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

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

最佳答案

您可以运行 Doxygen生成基于 HTML 的源浏览器。这不需要使用 Doxygen 样式的文档对代码进行注释。它适用于多种语言,包括 C++JavaMarkdown(.md 文件转到“相关页面” ").

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

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

## 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

有一个名为的配套程序doxywizard 让您浏览许多可用于自定义生成的 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 加密的主目录有一个 limit of 143 characters 。要解决此问题,您可能必须在家外编写 html 文件夹。

一个快速而肮脏的解决方案是将 html 链接到 /tmp/dev/shm 中的文件夹——也可能是 chmod权限以获得更好的数据安全性。

关于c++ - 使用 gcc 时在头文件中查找定义的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8874723/

相关文章:

windows - 系统 dll(如 kernel32.dll)是如何签名的

java - Eclipse 中 Spring MVC 模型对象的代码辅助 (jsp/jSTL) View

dojo - 使用 AMD 的 dojo 1.7.1 可以在 Aptana 3 中提供代码辅助吗?

C++在循环中逐行写入文件或添加到数组并在循环后写入文件?

c++ - C++ 中的高效字符串连接

windows - 如何在 Windows 中获取控制台的名称?

c - 如何使用全新的 Windows 副本在 C 语言中编译程序?无外部软件

java - 从 C++ 代码调用 Java 方法,不传递任何 JavaVm

c++ - 我可以使用具有这种语法的模板吗?