<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>崔添翼 § 翼若垂天之云 &#187; GCC</title>
	<atom:link href="http://cuitianyi.com/blog/tag/gcc/feed/" rel="self" type="application/rss+xml" />
	<link>http://cuitianyi.com</link>
	<description>Journey seeking Truth, Love, and Strength.</description>
	<lastBuildDate>Wed, 26 Oct 2011 05:25:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Emacs+GCC+GDB的最基本用法</title>
		<link>http://cuitianyi.com/blog/emacsgccgdb%e7%9a%84%e6%9c%80%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95/</link>
		<comments>http://cuitianyi.com/blog/emacsgccgdb%e7%9a%84%e6%9c%80%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 04:33:32 +0000</pubDate>
		<dc:creator>崔添翼</dc:creator>
				<category><![CDATA[程序园]]></category>
		<category><![CDATA[Emacs]]></category>
		<category><![CDATA[GCC]]></category>
		<category><![CDATA[GDB]]></category>

		<guid isPermaLink="false">http://tianyi.yo2.cn/emacsgccgdb%e7%9a%84%e6%9c%80%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95/</guid>
		<description><![CDATA[用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之类的。 顺便答一位读者问：]]></description>
			<content:encoded><![CDATA[<p>用Emacs+GCC+GDB做OI题的最基本用法是很简单的。以下就是我在NOI期间的解决方案。</p>
<p>首先，用Emacs编辑好.cpp程序，例如test.cpp。</p>
<p>然后，<code>M-x compile</code>，把那一行命令改成<code>g++ test.cpp -g -pg</code>，这一行命令会被记住，再次编译同一个文件就不用改这一行了。参数“-g”是为了加入调试信息，“-pg”是为了profiling，若不需要可以去掉这些参数。如果有编译错误会在下面的buffer里显示的，直接用鼠标点就可以跳到相应的行。</p>
<p>如果要调试，直接<code>M-x gdb</code>。</p>
<p>如果要运行，<code>M-x shell</code>，输入a.exe或者./a.out就能运行了。</p>
<p>稍微高级一点点的解决方案是在.emacs中加入一个自定义的编译过程，例如：</p>
<blockquote><p><code><br />
;;编译<br />
(defun quick-compile ()<br />
"A quick compile funciton for C++"<br />
(interactive)<br />
(compile (concat "g++ " (buffer-name (current-buffer)) " -g -pg"))<br />
)<br />
;;快捷键F9<br />
(global-set-key [(f9)] 'quick-compile)<br />
</code></p></blockquote>
<p>（注意由于本blog的bug以上代码中的引号有问题，请自行改成英文的单引号和双引号，也就是分号右边的那个键在英文输入法下的效果。）</p>
<p>这样就可以直接按f9编译了，也可以把gdb绑定到你喜欢的键上，同样是写一个global-set-key之类的。</p>
<p>顺便答一位读者问：</p>
<p><a href='http://cuitianyi.com/wp-content/uploads/2008/03/sr.png' title='sr.png'><img src='http://cuitianyi.com/wp-content/uploads/2008/03/sr.png' alt='sr.png' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://cuitianyi.com/blog/emacsgccgdb%e7%9a%84%e6%9c%80%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>MinGW的GCC4.2.1还蛮好用的啊！</title>
		<link>http://cuitianyi.com/blog/mingw%e7%9a%84gcc421%e8%bf%98%e8%9b%ae%e5%a5%bd%e7%94%a8%e7%9a%84%e5%95%8a%ef%bc%81/</link>
		<comments>http://cuitianyi.com/blog/mingw%e7%9a%84gcc421%e8%bf%98%e8%9b%ae%e5%a5%bd%e7%94%a8%e7%9a%84%e5%95%8a%ef%bc%81/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 07:50:51 +0000</pubDate>
		<dc:creator>崔添翼</dc:creator>
				<category><![CDATA[程序园]]></category>
		<category><![CDATA[GCC]]></category>
		<category><![CDATA[MinGW]]></category>

		<guid isPermaLink="false">http://tianyi.yo2.cn/mingw%e7%9a%84gcc421%e8%bf%98%e8%9b%ae%e5%a5%bd%e7%94%a8%e7%9a%84%e5%95%8a%ef%bc%81/</guid>
		<description><![CDATA[非常偶然的看到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/下载）使用效果更佳。]]></description>
			<content:encoded><![CDATA[<p>非常偶然的看到MinGW已经有了GCC4的Windows版，目前版本号是4.2.1（GNU的最新版本号是4.2.3，不过想来区别不大）。于是今天便下载试用了一下。经过非常初步的测试，GCC4的确比GCC3性能有所提高，体现在生成的可执行程序的大小和运行速度上。</p>
<p>安装步骤不能使用MinGW的安装程序（MinGW-5.1.3.exe），那个只能安装GCC3。MinGW GCC4还属于“Technology Preview”的阶段。</p>
<p>安装过程如下：</p>
<p>到<a href="http://sourceforge.net/project/showfiles.php?group_id=2435">http://sourceforge.net/project/showfiles.php?group_id=2435</a>去下载各组件的压缩包。下面所提到的压缩包的版本号截至2008.2.3都是最新的，当然若你看到了更高版本号的文件也可但用无妨。</p>
<p>必须的：</p>
<blockquote><p>
binutils-2.18.50-20080109.tar.gz<br />
mingw-runtime-3.14.tar.gz<br />
w32api-3.11.tar.gz<br />
gcc-core-4.2.1-sjlj-2.tar.gz<br />
gcc-g++-4.2.1-sjlj-2.tar.gz （编译C++程序必须，如果只是编译C程序不用）</p></blockquote>
<p>可选的：</p>
<blockquote><p>libgcc_sjlj_1.dll.gz （若提示缺少这个dll就下载吧）<br />
mingw32-make-3.81-2.tar.gz （make程序，协调较复杂的编译过程，有些IDE的项目功能依赖它）<br />
gdb-6.7.50.20071127-mingw.tar.bz2 （GDB程序，调试用的，有些IDE的调试功能依赖于它）
</p></blockquote>
<p>将所有压缩包解压到<strong>同一个文件夹</strong>，如C:/MinGW，如解压过程中提示有重复文件选日期更新的就可以了。</p>
<p>然后可以将bin目录下我们会用到的可执行文件改成更喜闻乐见的名称，如mingw32-g++-sjlj.exe和g++-sjlj.exe其实是同一个程序，任意保留一个并改名为g++.exe就行了。make、gdb等也可同样处理。</p>
<p>可以将包含g++等可执行程序的bin目录加入到系统path中，以方便使用。</p>
<p>配合ntemacs23（可在<a href="http://ntemacs.sf.net/">http://ntemacs.sf.net/</a>下载）使用效果更佳。</p>
]]></content:encoded>
			<wfw:commentRss>http://cuitianyi.com/blog/mingw%e7%9a%84gcc421%e8%bf%98%e8%9b%ae%e5%a5%bd%e7%94%a8%e7%9a%84%e5%95%8a%ef%bc%81/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

