ubuntu命令获取C++;程序 我正在寻找一个工具,它将帮助我获得C++程序中所有可用的函数以及它们在./p>中可用的目录(如果递归调用)。
例如,如果在folder2存在的folder1中运行的是foo.c,那么它有int foo()ubuntu命令获取C++;程序 我正在寻找一个工具,它将帮助我获得C++程序中所有可用的函数以及它们在./p>中可用的目录(如果递归调用)。,c++,linux,ubuntu,C++,Linux,Ubuntu,例如,如果在folder2存在的folder1中运行的是foo.c,那么它有int foo() 我想获取int foo()目录folder2/foo.c以防安装了Eclipse with CDT(),您可以创建一个新项目,导入所有代码并进行c/c++搜索。您还可以查看以下工具: ctags可能是您想要的 它是vim或emacs等编辑器创建标记的工具。这些编辑器可以使用标记来查找函数和类的声明和定义。这是一个非常粗糙的近似值,但可能已经让您更接近所要查找的内容,而且它的优点是非常简单。从代
我想获取int foo()目录folder2/foo.c以防安装了Eclipse with CDT(),您可以创建一个新项目,导入所有代码并进行c/c++搜索。您还可以查看以下工具:
- ctags可能是您想要的
它是vim或emacs等编辑器创建标记的工具。这些编辑器可以使用标记来查找函数和类的声明和定义。这是一个非常粗糙的近似值,但可能已经让您更接近所要查找的内容,而且它的优点是非常简单。从代码库的顶级目录运行:
find -name "*.h" -exec grep -H '^[^/]*(' {} \;
我假设当你谈到你的“C++程序”时,你可以访问所有C++源文件,并访问它的构建,例如它的代码> MaxFixe/Cuff>等
如果您有权访问生成的二进制文件,您可以在其上使用nm-C
来获取其中的函数
然后,您可以考虑使用一些GCC扩展插件。您可以使用扩展GCC(这是一种用于扩展GCC编译器的特定于域的语言)。这个例子做了一些非常类似的事情(它只是计算函数,您可以添加几行代码,让它输出当前计算的函数的名称和源位置)
但是请注意,由于GCC是优化的,程序中函数的概念可能没有您想象的那么明显:GCC是克隆和内联函数,这意味着生成的程序中的函数集不是源代码中的函数集 在GCC编译器内部工作的优点是,您可以真正获得编译器看到的函数。例如,文本方法(如基于ctags
或grep
的答案)不能很好地处理预处理技巧。这篇文章绝对不是离题。这是一个非常好的、与编程相关的问题。依我拙见