惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - 博得一笑

Bode's Online Judge Core Engine Bate2 Publish! 在线评测系统核心引擎测试二版发布! Bode's Online Judge Core Engine (Judge Engine Dynamic Link Library) 在线评测系统核心引擎 来介绍个网游:英语情境教学网游——《乌龙学院》 近期任务 维基百科中的上师大条目中发现的严重纰漏!!! 《Windows核心编程》读书笔记(二) 《Windows核心编程》读书笔记(一) 看了一下MD5加密算法的介绍,然后顺手把C实现改成了个C++类。 伊拉克通俗演义——关于大国霸权的思考 学思湖怪超COOL文字生成器II黄金特别版——华丽登场!!! 感谢LILY为学思湖怪设计的漂亮封面! ^o^ 学思湖怪超COOL文字生成器2正式版 发布啦!!! 关于[学思湖怪超COOL文字生成器2_Beta2]发布的一些说明 ^c^ 新版本“学思湖怪”文字生成器开始测试! 上机时的无聊之作。。。 博得写博客整整一年了…… 圆梦时分 ——写在自制游戏推出半年后 博客笑将要添加的一个功能。 C#中如何打开一个未知编码的文本文件。
GCC研究使用笔记
博得一笑 · 2006-12-06 · via 博客园 - 博得一笑

 前言
这个博客好久没来更新了,罪过罪过啊……
现在打算和同学一起做个Online Judge玩,所以这几天先开始研究些相关知识,随手发点笔记上来,充充门面啦:)


GCC
研究使用笔记

By BodeSmile

At: 2006/12/06

                GCC原本是一个用于Unix-like系统下的编译器。不过,现在也有了许多Win32下的GCC移植版本。比较常见的有MinGWCygwin

                MinGWWin32下开源的移植版本,主要支持的程序语言有:CC++AdaObject CJava等,另外可能还有些支持其他语言的扩展包。应该可以满足大多数的需要。

2、         GCC安装配置

                MinGWGCC不同与VS等大型集成开发环境,它是有很多实现不同子功能的功能包组成。用户可以按照不同的需要,来方便的扩展编译器的功能,从简单的诸如C/C++的编译链接,到调试工具、项目管理,都是由独立的功能包组成。所有这些包都可以从MinGW的官方网站上下载到,网址是: http://www.mingw.org/download.shtml

                当然,在那里也可以下载一个成套的解决方案,但这个不能满足我的定制需要,所以就不做说明了。

                基本的功能包有以下几个:

gcc-core

支持C的功能包,按字面解释也是一个基本核心包。

gcc-g++

支持C++的功能包,类似的还有gcc-javagcc-ada等功能包。

binutils

提供基本的汇编器,连接器等工具。

w32api

提供Windows API支持,编译Windows程序所必需。

mingw-runtime

MinGW的运行库。

                将上述功能包从官方网站下全部下载后,解压到一个文件夹中,有相同文件的话,保留最新版本的那个。然后在环境变量的PATH 中添加“安装目录\bin\”的新条目。

                这个时候打开控制台程序,试着输入“gcc -v”的命令,如果有版本信息出现,则说明配置基本上成功了。至于有没有漏掉什么关键包,还要实际编译几次后才能知道。

3、         编译命令

C/C++为例:

最基本的编译C程序

gcc –o exename sourcefile.c

最基本的编译C++程序

g++ –o exename sourcefile.cpp

-s开关可以缩小最终可执行文件的大小。

gcc –s –o exename sourcefile.c

g++ –s –o exename sourcefile.cpp

一个打印“Hello World”的c程序,一般生成为15.2K,加上-s开关后为5.5K。一个C++ 程序一般情况为454K(用iostream果然可怕),加上-s开关后为251K。效果显著啊。

-O1-O2-O3进行优化,会使编译的时间和空间变大,但是生成代码的运行效率会提高。

比如:g++ -O3 -s -o  exename sourcefile.cpp

参考资料:

MinGW – Homehttp://www.mingw.org/

GCC中文手册:http://blog.csdn.net/rjycsdn/archive/2004/12/19/222125.aspx

GCC for Win32开发环境介绍:http://blog.csdn.net/VisionCat/archive/2006/05/07/711693.aspx