我们从 Eclipse 打印 C++ 源代码时得到的输出相当难看。
是否有方法/插件可以漂亮地打印 C++ 源代码,例如使用 a2ps(可能正在使用另一个 C 源代码过滤器)?
我们从 Eclipse 打印 C++ 源代码时得到的输出相当难看。
是否有方法/插件可以漂亮地打印 C++ 源代码,例如使用 a2ps(可能正在使用另一个 C 源代码过滤器)?
请参阅这篇使用enscript作为漂亮打印引擎的DDJ文章。
我也用enscript
这个。这是我经常使用的别名:
别名 cpp2ps='enscript --color --pretty-print=cpp --language=PostScript'
我像这样使用它:
cpp2ps -P main.ps main.cpp
还有其他几个很棒的选项,enscript
包括旋转、2 列输出、行号、页眉/页脚等。查看enscript 手册页。
此外,在 Mac 上,XCode 可以很好地打印 C++ 代码。
我想扩展 Windows 7 的响应,因为省略了一些关键步骤:
0) 如果您没有 python GDB,请打开 shell/命令并使用 MinGW-get.exe 来“安装”启用 Python 的 GDB,例如
MinGw-get.exe install gdb-python
1a) 从http://python.org/download/获取 Python 2.7.x并安装
1b) 确保在您的环境中设置了 PYTHONPATH 和 PYTHONHOME:
PYTHONPATH should be C:\Python27\Lib (or similar)
PYTHONHOME should be C:\Python27
1c) 将 PYTHONHOME 添加到您的 PATH
%PYTHONHOME%;...
2a) 打开一个文本回车,输入以下语句。请注意,第 3 行指向 python 脚本所在的位置。请参阅下面的注释!
python
import sys
sys.path.insert(0, 'C:/MinGW/share/gcc-4.6.1/python')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end
2b) 另存为 '.gdbinit' 注意:Windows 资源管理器不允许您命名以资源管理器中的句点开头的文件。大多数文本编辑(包括记事本)都可以。GDB 初始化文件就像 GDB 命令的“脚本”,GBD 将在加载时执行。
2c) '.gdbinit' 文件需要位于 GDB 的工作目录中(很可能这是您的项目根目录,但您的 IDE 可以告诉您。
3) 打开您的 Eclipse(或其他 IDE)首选项对话框。转到 C++ 调试器子菜单。
4) 配置 Eclipse 以C:\MinGW\bin\gdb-python27.exe
用作调试器和您.gdbinit
的配置文件。
5a) 重新创建所有调试启动配置(删除旧配置并从头开始创建新配置)。
--OR--
5b) 编辑每个调试配置并将其指向新的 gdb-python.exe 并将其指向。
--别忘了把上面python代码中的位置改成python目录!这个目录是由 MinGW 创建的,所以不要去下载漂亮的打印机,MinGW 在第 0 步就为你做了。只需转到您的 MinGW 安装目录、共享文件夹、GCC 文件夹(有版本号),您就会找到 python 文件夹。这个位置应该是 GDB 加载的 python 脚本中的位置。
--另外,.gdbinit 是一个 PITA,确保它的命名正确并且在 GDB 的工作文件夹中,这不一定是 gdb-python.exe 所在的位置!在加载 GDB 时查看您的 GDB 输出,以查看是否 a) 'python-enabled' 在加载过程中出现,以及 .gdbinit 中的语句是否出现。
--最后,我对系统变量有很多问题。如果 python 给你'ImportError',那么很可能你没有设置 PYTHONPATH 或 PYTHONHOME。
--带有'gdb-python27'的目录(例如C:\MinGW\bin')也应该在你的路径上,如果是的话,它会使设置eclipse更好一些,因为你不需要输入绝对路径. 但是,有时 .gbdinit 需要绝对路径。如果它有效,您将在调试器启动时看到来自 gbd (console->gdb 跟踪) 的输出:
835,059 4^done
835,059 (gdb)
835,059 5-enable-pretty-printing
835,069 5^done
....
835,129 12^done
835,129 (gdb)
835,129 13source C:\MinGW\bin\.gdbinit
835,139 &"source C:\\MinGW\\bin\\.gdbinit\n"
835,142 13^done
835,142 (gdb)