Unix/命令/软件开发指南
一个调试器。GNU 的替代方案是 gdb.
链接
从文件创建存档。通常的用法是从编译后的目标文件创建存档,然后将存档提供给链接器。
链接
- ar, opengroup.org
- ar 手册页, man.cat-v.org
- ar, freebsd.org
- ar in GNU Binary Utilities, sourceware.org
- W:Ar (Unix)
编译汇编源代码。
链接
编译 C 语言源代码。GNU 的替代方案是 gcc。另一个替代方案是 clang。
链接
输出 C 语言源代码的调用图。
链接
从源代码创建标签文件。标签文件是对象定义和对象使用的文本索引,其中对象包括变量、函数等。该文件有助于用户和工具(如文本编辑器)导航源代码。Emacs 使用其自己的变体,称为 etags;或者,您可以使用 Exuberant ctags 选项 -e 生成 Emacs 格式的标签文件。
链接
- ctags, opengroup.org
- ctags, freebsd.org
- Exuberant ctags, ctags.sourceforge.net
- W:Ctags
输出有关 C 语言源代码文件的交叉引用信息。
链接
编译 Fortran 77 源代码。GNU Fortran 编译器过去通过 g77 调用,现在通过 gfortran 调用。
链接
- fort77, opengroup.org
- f77 手册页, man.cat-v.org
- GNU Fortran 编译器 手册,gcc.gnu.org;也可以作为 pdf 获取
GNU 编译器集合是用于 C、C++ 和其他一些语言的编译器套件。可以使用 gcc 命令编译 C 语言
- gcc test.c
- 编译 test.c,将其与必需的库链接,并创建一个结果可执行文件,即 a.out 或 a.exe。
- gcc test.c -o test
- 编译 test.c,将其与必需的库链接,并创建 test 可执行文件。
- gcc -c mod.c -o mod.o
- 将 mod.c 编译成 mod.o 目标文件。-c 选项阻止链接。
- gcc test.c -o test mod.o
- 编译 test.c,将其与 mod.o 链接,并创建一个名为 test 的可执行文件。
- g++ test.cpp -o test
- 编译和链接 C++ 源代码。
链接
- GCC 在线文档, gcc.gnu.org
- GCC 和 Make - 编译、链接和构建 C/C++ 应用程序, ntu.edu.sg
GNU 项目的一部分,有助于调试 C/C++ 程序以及其他一些语言的程序。要调试的程序需要使用 -g 标志编译。然后,您可以像 gdb myprog 一样启动 gdb,这会进入 gdb shell 而不运行程序。进入 gdb shell 后,您可以通过输入命令来控制 gdb
- break main
- 在 main 函数处设置断点。
- b main
- 上述命令的简写。一般来说,只要没有歧义,就可以使用命令的前缀。
- break MySource.c:145
- 在源代码 MySource.c 的第 145 行处设置断点。
- break MySource.c:145 if myvar > 3
- 设置条件断点。
- watch myvar
- 创建一个监视点,当变量或表达式发生更改时停止执行。
- watch myvar if myvar > 3
- 创建一个条件监视点。
- info break
- 列出断点。
- info watch
- 列出监视点。
- run
- 运行程序。最初,程序没有运行。可以从同一个 gdb 会话多次运行程序。
- continue
- 继续执行,直到遇到下一个断点或程序结束。
- step
- 执行程序的一步,如果适用,则进入函数调用。
- next
- 执行程序的一步,但不嵌套到函数调用。
- quit
- 退出调试器。
- print myvar
- 输出变量的值。
- print (myvar * 3) << 4
- 输出它计算的表达式的值。
- disp myvar
- 将变量添加到将在每一步输出的表达式列表中。
- set myvar = 1
- 更改变量的值。
- set myvar = 1 << 4
- 更改变量的值,支持表达式求值。
- where
- 输出调用堆栈。
- help breakpoints
- 输出有关断点的帮助信息,包括处理断点的命令。
维基教科书中的其他地方:GCC 调试/gdb,Linux 应用程序调试技术/调试器.
链接
- gdb, freebsd.org
- 使用 GDB 调试, sourceware.org
- GDB wiki, sourceware.org
- GDB 快速参考 , csl.mtu.edu
- GDB 到 LLDB 命令映射, lldb.llvm.org
- GNU 调试器, en.wikipedia.org
将目标文件链接到可执行文件。
链接
- ld 手册页, man.cat-v.org
- ld, freebsd.org
- GNU ld 手册,sourceware.org
- LLD - The LLVM Linker, lld.llvm.org
根据提供的词法规则生成 C 语言词法分析器的源代码。
链接
- lex, opengroup.org
- lex 手册页, man.cat-v.org
- lex, freebsd.org
- flex, github.com
- W:Lex (软件)
输出 C 语言源代码中的可疑内容。
链接
根据生产输入文件和输出文件之间依赖关系的规范,驱动文件生产过程。这样驱动的文件生产过程通常是编译和链接。
链接
输出在目标文件或类似包含符号的文件中找到的符号名称。
链接
输出来自目标文件的信息,例如反汇编。未被 POSIX 涵盖。macOS 的类似工具是或曾经是 otool。
链接
对程序进行性能分析,识别占用最多时间的代码位置。
链接
从可执行文件和类似的编译结果文件中删除某些信息,这些信息对于某些目的而言是不必要的。
链接
根据提供的语法规范生成 C 语言解析器的源代码。代表 yet another compiler compiler。GNU 的替代方案是 bison,与 yacc 兼容。
链接