Emacs+GCC+GDB的最基本用法

用Emacs+GCC+GDB做OI题的最基本用法是很简单的。以下就是我在NOI期间的解决方案。

首先,用Emacs编辑好.cpp程序,例如test.cpp。

然后,M-x compile,把那一行命令改成g++ test.cpp -g -pg,这一行命令会被记住,再次编译同一个文件就不用改这一行了。参数“-g”是为了加入调试信息,“-pg”是为了profiling,若不需要可以去掉这些参数。如果有编译错误会在下面的buffer里显示的,直接用鼠标点就可以跳到相应的行。

如果要调试,直接M-x gdb

如果要运行,M-x shell,输入a.exe或者./a.out就能运行了。

稍微高级一点点的解决方案是在.emacs中加入一个自定义的编译过程,例如:


;;编译
(defun quick-compile ()
"A quick compile funciton for C++"
(interactive)
(compile (concat "g++ " (buffer-name (current-buffer)) " -g -pg"))
)
;;快捷键F9
(global-set-key [(f9)] 'quick-compile)

(注意由于本blog的bug以上代码中的引号有问题,请自行改成英文的单引号和双引号,也就是分号右边的那个键在英文输入法下的效果。)

这样就可以直接按f9编译了,也可以把gdb绑定到你喜欢的键上,同样是写一个global-set-key之类的。

顺便答一位读者问:

sr.png

Comments (4)

MinGW的GCC4.2.1还蛮好用的啊!

非常偶然的看到MinGW已经有了GCC4的Windows版,目前版本号是4.2.1(GNU的最新版本号是4.2.3,不过想来区别不大)。于是今天便下载试用了一下。经过非常初步的测试,GCC4的确比GCC3性能有所提高,体现在生成的可执行程序的大小和运行速度上。

安装步骤不能使用MinGW的安装程序(MinGW-5.1.3.exe),那个只能安装GCC3。MinGW GCC4还属于“Technology Preview”的阶段。

安装过程如下:

http://sourceforge.net/project/showfiles.php?group_id=2435去下载各组件的压缩包。下面所提到的压缩包的版本号截至2008.2.3都是最新的,当然若你看到了更高版本号的文件也可但用无妨。

必须的:

binutils-2.18.50-20080109.tar.gz
mingw-runtime-3.14.tar.gz
w32api-3.11.tar.gz
gcc-core-4.2.1-sjlj-2.tar.gz
gcc-g++-4.2.1-sjlj-2.tar.gz (编译C++程序必须,如果只是编译C程序不用)

可选的:

libgcc_sjlj_1.dll.gz (若提示缺少这个dll就下载吧)
mingw32-make-3.81-2.tar.gz (make程序,协调较复杂的编译过程,有些IDE的项目功能依赖它)
gdb-6.7.50.20071127-mingw.tar.bz2 (GDB程序,调试用的,有些IDE的调试功能依赖于它)

将所有压缩包解压到同一个文件夹,如C:/MinGW,如解压过程中提示有重复文件选日期更新的就可以了。

然后可以将bin目录下我们会用到的可执行文件改成更喜闻乐见的名称,如mingw32-g++-sjlj.exe和g++-sjlj.exe其实是同一个程序,任意保留一个并改名为g++.exe就行了。make、gdb等也可同样处理。

可以将包含g++等可执行程序的bin目录加入到系统path中,以方便使用。

配合ntemacs23(可在http://ntemacs.sf.net/下载)使用效果更佳。

Comments (7)