Skip to content

Tag Archives: GCC

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之类的。 顺便答一位读者问:

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/下载)使用效果更佳。