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

原文 标签 c++ windows code-assist

在使用gcc时,是否有人推荐在头文件中查找定义的方法?
使用msvc时,我可以右键单击并选择“转到定义”,这真的很好。
我使用了netbeans+gcc,它确实有代码帮助,包括到定义的超链接,所以这是一个选项。但是,我想知道是否还有其他的ide具有这种功能,并且在不使用ide时也是最好的方法。

最佳答案

您可以运行Doxygen来生成基于html的源浏览器。这并不要求用doxygen样式的文档对代码进行注释。它适用于多种语言,包括C++、Java和标记(.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中的一个文件夹--也许还可以使用权限来提高数据安全性。

相关文章:

c++ - Windows ReadFile()直到读取sizeToRead值才返回

mysql - WordPress:MySQL数据库和UNC共享

java - 在Eclipse中快速实现包装(委托方法)?

java - Java vs C ++(g ++)vs C ++(Visual Studio)性能

c++ - 未定义C ++ sqlite3 api(Visual Studio 2015)

c++ - c ++:需要正确的语法以避免MISRA 14-6-1警告。具有相关基类的类模板

c++ - 使用Qt的Windows桌面上的Bluetooth LE

python - Windows缺少Python.h

javascript - 向Intellij IDEA添加ExtJS代码辅助

android - 让ADT Code Assist像Xcode自动完成一样工作