📄 gcc参数详解中国力量.htm
字号:
}
}
function move() {
if (helpstat) {
alert("移动标记\n使文字产生移动效果.\n用法: [move]要产生移动效果的文字[/move]");
} else if (basic) {
AddTxt="[move][/move]";
AddText(AddTxt);
} else {
txt=prompt("要产生移动效果的文字","文字");
if (txt!=null) {
AddTxt="[move]"+txt;
AddText(AddTxt);
AddTxt="[/move]";
AddText(AddTxt);
}
}
}
function shadow() {
if (helpstat) {
alert("阴影标记\n使文字产生阴影效果.\n用法: [SHADOW=宽度, 颜色, 边界]要产生阴影效果的文字[/SHADOW]");
} else if (basic) {
AddTxt="[SHADOW=255,blue,1][/SHADOW]";
AddText(AddTxt);
} else {
txt2=prompt("文字的长度、颜色和边界大小","255,blue,1");
if (txt2!=null) {
txt=prompt("要产生阴影效果的文字","文字");
if (txt!=null) {
if (txt2=="") {
AddTxt="[SHADOW=255, blue, 1]"+txt;
AddText(AddTxt);
AddTxt="[/SHADOW]";
AddText(AddTxt);
} else {
AddTxt="[SHADOW="+txt2+"]"+txt;
AddText(AddTxt);
AddTxt="[/SHADOW]";
AddText(AddTxt);
}
}
}
}
}
function glow() {
if (helpstat) {
alert("光晕标记\n使文字产生光晕效果.\n用法: [GLOW=宽度, 颜色, 边界]要产生光晕效果的文字[/GLOW]");
} else if (basic) {
AddTxt="[glow=255,red,2][/glow]";
AddText(AddTxt);
} else {
txt2=prompt("文字的长度、颜色和边界大小","255,red,2");
if (txt2!=null) {
txt=prompt("要产生光晕效果的文字.","文字");
if (txt!=null) {
if (txt2=="") {
AddTxt="[glow=255,red,2]"+txt;
AddText(AddTxt);
AddTxt="[/glow]";
AddText(AddTxt);
} else {
AddTxt="[glow="+txt2+"]"+txt;
AddText(AddTxt);
AddTxt="[/glow]";
AddText(AddTxt);
}
}
}
}
}
function openscriphtml()
{
if (navigator.appName!="Microsoft Internet Explorer")
alert("此功能 Netscape 用户不能使用!")
else
{newwin=window.open('htmledit/editor.html','','width=544,height=294');
newwin.focus();
}
}
function runEx(){
//alert('请注意,按下确定将生成页面,按下后请稍后....');
var winEx = window.open("", "winEx", "width=600,height=400,status=yes,menubar=yes,scrollbars=yes,resizable=yes"); winEx.document.open("text/html", "replace");
winEx.document.write(unescape(event.srcElement.parentElement.children[2].value));
winEx.document.close();
}
function openScript(url, width, height) {
var Win = window.open(url,"openScript",'width=' + width + ',height=' + height + ',resizable=1,scrollbars=yes,menubar=yes,status=yes' );
}
</SCRIPT>
<SCRIPT language=Javascript>
<!-- hide
function insertsmilie(smilieface){
document.frmAnnounce.body.value+=smilieface;
}
// -->
</SCRIPT>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK
href="GCC参数详解中国力量.files/style.css" rel=stylesheet>
<META content=中国力量,http://www.cntk.com name=keywords>
<META content="MSHTML 6.00.2800.1276" name=GENERATOR></HEAD>
<BODY>
<CENTER>
<TABLE borderColor=#666666 height=111 cellSpacing=0 borderColorDark=#666666
width=758 borderColorLight=#666666 border=0>
<TBODY>
<TR>
<TD vAlign=center borderColor=#ffffff align=middle width=139 height=81
rowSpan=2><IMG height=100 src="GCC参数详解中国力量.files/logo.gif" width=100> </TD>
<TD vAlign=top borderColor=#ffffff align=right width=611 colSpan=2
height=10><A href="mailto:wurui@bit.edu.cn">联系我们</A> | <A
href="http://vdvd.net/cgi-bin/is01/leoboard.cgi" target=_blank><FONT
color=#cc6633>中华坛</FONT></A> | <A
href="http://www.cntk.com/aboutus.asp">About CnForce</A></TD></TR>
<TR>
<TD vAlign=center borderColor=#ffffff align=middle width=611 colSpan=2
height=69><IMG height=60 src="GCC参数详解中国力量.files/banner.gif" width=568>
</TD></TR></TBODY></TABLE></CENTER>
<CENTER>
<TABLE borderColor=#ffffff cellSpacing=0 borderColorDark=#ffffff cellPadding=0
width=758 borderColorLight=#ffffff border=1>
<TBODY>
<TR bgColor=#6a7f9a>
<TD borderColor=#666666 borderColorLight=#666666 align=middle width=746
borderColorDark=#666666 height=1>
<DIV align=center>
<CENTER>
<TABLE height=15 cellPadding=0>
<TBODY>
<TR>
<TD align=middle height=26><IMG height=14
src="GCC参数详解中国力量.files/more.gif" width=15 border=0><A
href="http://www.cntk.com/index.asp"><FONT
color=#ffffff>首页</FONT></A></TD>
<TD align=middle height=26><IMG height=14
src="GCC参数详解中国力量.files/more.gif" width=15 border=0><A
href="http://www.cntk.com/docu/default.asp"><FONT
color=#ffffff>技术文档</FONT></A></TD>
<TD align=middle height=26><IMG height=14
src="GCC参数详解中国力量.files/more.gif" width=15 border=0><A
href="http://www.cntk.com/tool/index.asp"><FONT
color=#ffffff>工具仓库</FONT></A></TD>
<TD align=middle height=26><IMG height=14
src="GCC参数详解中国力量.files/more.gif" width=15 border=0><A
href="http://vdvd.net/cgi-bin/is01/leoboard.cgi" target=_blank><FONT
color=#ffcccc>中华坛</FONT></A></TD>
<TD align=middle height=26><IMG height=14
src="GCC参数详解中国力量.files/more.gif" width=15 border=0><A
href="http://www.cntk.com/aboutus.asp"><FONT
color=#ffffff>关于本站</FONT></A></TD></TR></TBODY></TABLE></CENTER></DIV></TD></TR>
<TR>
<TD width=746 height=1>您的位置::<A
href="http://www.cntk.com/index.asp">中国力量</A><FONT
size=-2>>></FONT>技术文档</TD></TR></TBODY></TABLE></CENTER>
<TABLE cellSpacing=0 cellPadding=0 width="95%" align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE class=border cellSpacing=0 cellPadding=4 width="100%" border=0>
<TBODY>
<TR>
<TD class=title colSpan=2>| <A
href="http://www.cntk.com/docu/default.asp?classid=3"><FONT
color=red>安全文摘</FONT></A> | | <A
href="http://www.cntk.com/docu/default.asp?classid=6">漏洞分析</A> |
| <A
href="http://www.cntk.com/docu/default.asp?classid=7">原创手札</A> |
</TD></TR>
<TR>
<TD class=title2 colSpan=2>| <A
href="http://www.cntk.com/docu/index.asp?classid=3">安全文摘</A>>><A
href="http://www.cntk.com/docu/index.asp?classid=3&Nclassid=18">工具介绍</A>>>GCC参数详解<BR></TD></TR>
<TR>
<TD class=tdbg colSpan=2>
<CENTER><B><FONT
size=3>GCC参数详解</FONT></B><BR>中国力量 www.cntk.com 2003-6-19</CENTER>
<P align=right>如对文章有什么意见或者疑惑,请光临 <A
href="http://fjshop.net/cgi-bin/is01/leoboard.cgi"
target=_blank>中华坛</A>.</P>
<P>
<BLOCKQUOTE><BR><FONT class=b1>[版本] <BR>-0.13 <BR>[声明]
<BR>这篇文档是我的关于gcc参数的笔记,我很怀念dos年代我用小本子,纪录所有的dos
<BR>命令的参数.哈哈,下面的东西可能也不是很全面,我参考了很多的书,和gcc的帮助.
<BR>不全的原因是,有可能我还没有看到这个参数,另一种原因是,我可能还不会用它 <BR>不过,我会慢慢的补齐的.哈哈
<BR>如果你要转在本文章请保留我的email(pianopan@beeship.com)和文章的全 <BR>面性.
<BR>[介绍] <BR>gcc and g++分别是gnu的c & c++编译器
<P></P>
<P>gcc/g++在执行编译工作的时候,总共需要4步 </P>
<P>1.预处理,生成.i的文件[预处理器cpp] <BR>2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]
<BR>3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] <BR>4.连接目标代码,生成可执行程序[链接器ld]
</P>
<P><BR>[参数详解] <BR>-x language filename <BR>
设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根 <BR>
据约定C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果 <BR>
你很个性,决定你的C代码文件的后缀名是.pig 哈哈,那你就要用这 <BR>
个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数 <BR> 的使用。 <BR> 可以使用的参数吗有下面的这些
<BR> `c', `objective-c', `c-header', `c++', `cpp-output',
<BR> `assembler', and `assembler-with-cpp'. <BR>
看到英文,应该可以理解的。 <BR> 例子用法: <BR> gcc -x c hello.pig <BR> <BR>-x
none filename <BR> 关掉上一个选项,也就是让gcc根据文件名后缀,自动识别文件类型 <BR> 例子用法:
<BR> gcc -x c hello.pig -x none hello2.c <BR> <BR>-c
<BR> 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 <BR> 例子用法: <BR> gcc -c
hello.c <BR> 他将生成.o的obj文件 </P>
<P>-S <BR> 只激活预处理和编译,就是指把文件编译成为汇编代码。 <BR> 例子用法 <BR> gcc -S
hello.c <BR> 他将生成.s的汇编代码,你可以用文本编辑器察看 </P>
<P>-E <BR> 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里 <BR> 面. <BR> 例子用法:
<BR> gcc -E hello.c > pianoapan.txt <BR> gcc -E hello.c |
more <BR> 慢慢看吧,一个hello word 也要与处理成800行的代码 </P>
<P>-o <BR> 制定目标名称,缺省的时候,gcc 编译出来的文件是a.out,很难听,如果
<BR> 你和我有同感,改掉它,哈哈 <BR> 例子用法 <BR> gcc -o hello.exe hello.c
(哦,windows用习惯了) <BR> gcc -o hello.asm -S hello.c </P>
<P>-pipe <BR> 使用管道代替编译中临时文件,在使用非gnu汇编工具的时候,可能有些问 <BR> 题
<BR> gcc -pipe -o hello.exe hello.c </P>
<P>-ansi <BR> 关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性(包括禁止一
<BR> 些asm inline typeof关键字,以及UNIX,vax等预处理宏, </P>
<P>-fno-asm <BR> 此选项实现ansi选项的功能的一部分,它禁止将asm,inline和typeof用作
<BR> 关键字。 <BR> <BR>-fno-strict-prototype
<BR> 只对g++起作用,使用这个选项,g++将对不带参数的函数,都认为是没有显式
<BR> 的对参数的个数和类型说明,而不是没有参数.
<BR> 而gcc无论是否使用这个参数,都将对没有带参数的函数,认为城没有显式说 <BR> 明的类型 <BR>
<BR>-fthis-is-varialble <BR> 就是向传统c++看齐,可以使用this当一般变量使用. <BR>
<BR>-fcond-mismatch <BR> 允许条件表达式的第二和第三参数类型不匹配,表达式的值将为void类型
<BR> <BR>-funsigned-char <BR>-fno-signed-char <BR>-fsigned-char
<BR>-fno-unsigned-char
<BR> 这四个参数是对char类型进行设置,决定将char类型设置成unsigned char(前 <BR> 两个参数)或者
signed char(后两个参数) <BR> <BR>-include file
<BR> 包含某个代码,简单来说,就是便以某个文件,需要另一个文件的时候,就可以
<BR> 用它设定,功能就相当于在代码中使用#include<filename> <BR> 例子用法:
<BR> gcc hello.c -include /root/pianopan.h <BR> <BR>-imacros
file <BR> 将file文件的宏,扩展到gcc/g++的输入文件,宏定义本身并不出现在输入文件 <BR> 中 <BR>
<BR>-Dmacro <BR> 相当于C语言中的#define macro <BR> <BR>-Dmacro=defn
<BR> 相当于C语言中的#define macro=defn <BR> <BR>-Umacro
<BR> 相当于C语言中的#undef macro </P>
<P>-undef <BR> 取消对任何非标准宏的定义 <BR> <BR>-Idir
<BR> 在你是用#include"file"的时候,gcc/g++会先在当前目录查找你所制定的头
<BR> 文件,如果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,他
<BR> 回先在你所制定的目录查找,然后再按常规的顺序去找.
<BR> 对于#include<file>,gcc/g++会到-I制定的目录查找,查找不到,然后将到系
<BR> 统的缺省的头文件目录查找 <BR> <BR>-I-
<BR> 就是取消前一个参数的功能,所以一般在-Idir之后使用 <BR> <BR>-idirafter dir
<BR> 在-I的目录里面查找失败,讲到这个目录里面查找. <BR> <BR>-iprefix prefix
<BR>-iwithprefix dir <BR> 一般一起使用,当-I的目录查找失败,会到prefix+dir下查找
<BR> <BR>-nostdinc <BR> 使编译器不再系统缺省的头文件目录里面找头文件,一般和-I联合使用,明确
<BR> 限定头文件的位置 <BR> <BR>-nostdin C++
<BR> 规定不在g++指定的标准路经中搜索,但仍在其他路径中搜索,.此选项在创建 <BR> libg++库使用 <BR>
<BR>-C <BR> 在预处理的时候,不删除注释信息,一般和-E使用,有时候分析程序,用这个很 <BR> 方便的 <BR>
<BR>-M <BR> 生成文件关联的信息。包含目标文件所依赖的所有源代码 <BR> 你可以用gcc -M
hello.c来测试一下,很简单。 <BR> <BR>-MM
<BR> 和上面的那个一样,但是它将忽略由#include<file>造成的依赖关系。 <BR> <BR>-MD
<BR> 和-M相同,但是输出将导入到.d的文件里面 <BR> <BR>-MMD
<BR> 和-MM相同,但是输出将导入到.d的文件里面 <BR> <BR>-Wa,option
<BR> 此选项传递option给汇编程序;如果option中间有逗号,就将option分成多个选
<BR> 项,然后传递给会汇编程序 <BR> <BR>-Wl.option
<BR> 此选项传递option给连接程序;如果option中间有逗号,就将option分成多个选
<BR> 项,然后传递给会连接程序. <BR> </P>
<P>-llibrary <BR> 制定编译的时候使用的库 <BR> 例子用法 <BR> gcc -lcurses
hello.c <BR> 使用ncurses库编译程序 <BR> <BR>-Ldir
<BR> 制定编译的时候,搜索库的路径。比如你自己的库,可以用它制定目录,不然
<BR> 编译器将只在标准库的目录找。这个dir就是目录的名称。 <BR> <BR>-O0 <BR>-O1 <BR>-O2
<BR>-O3 <BR> 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最 <BR> 高
<BR> <BR>-g <BR> 只是编译器,在编译的时候,产生条是信息。 <BR> <BR>-gstabs
<BR> 此选项以stabs格式声称调试信息,但是不包括gdb调试信息. <BR> <BR>-gstabs+
<BR> 此选项以stabs格式声称调试信息,并且包含仅供gdb使用的额外调试信息. <BR> <BR>-ggdb
<BR> 此选项将尽可能的生成gdb的可以使用的调试信息. <BR>-static
<BR> 此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么 <BR>动态连接库,就可以运行.
<BR>-share <BR> 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.
<BR>-traditional <BR> 试图让编译器支持传统的C语言特性 <BR>[参考资料]
<BR>-Linux/UNIX高级编程 <BR> 中科红旗软件技术有限公司编著.清华大学出版社出版 <BR>-Gcc man
page <BR> <BR>[ChangeLog] <BR>-2002-08-10 <BR> ver 0.1 发布最初的文档
<BR>-2002-08-11 <BR> ver 0.11 修改文档格式 <BR>-2002-08-12 <BR> ver
0.12 加入了对静态库,动态库的参数 <BR>-2002-08-16 <BR> ver 0.16
增加了gcc编译的4个阶段的命令 </P>
<P><BR></FONT><BR><BR>
<P align=right>原作者:未知<BR>来 源:google<BR>共有793位读者阅读过此文 <BR><BR>
<P align=right>如对文章有什么意见或者疑惑,请光临 <A
href="http://fjshop.net/cgi-bin/is01/leoboard.cgi"
target=_blank>中华坛</A>.</P></BLOCKQUOTE>
<P>
<LI>上篇文章:<A href="http://www.cntk.com/docu/list.asp?id=89">MySQL
<4.0 remote root exploit</A> <BR>
<LI>下篇文章:<A
href="http://www.cntk.com/docu/list.asp?id=91">运行在Linux上的webdav溢出程序</A>
</LI></TD></TR>
<TR>
<TD class=title3 width="50%">□- 本周热门文章 </TD>
<TD class=title3 width="50%">□- 相关文章 </TD></TR>
<TR class=tdbg>
<TD vAlign=top width="50%"></TD>
<TD vAlign=top width="50%"><A
href="http://www.cntk.com/docu/list.asp?id=90">GCC参数详解</A><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<DIV></DIV>
<CENTER>
<TABLE borderColor=#ffffff height=31 cellSpacing=0 borderColorDark=#ffffff
borderColorLight=#ffffff border=1>
<TBODY>
<TR>
<TD height=30></TD></TR>
<TR>
<TD borderColor=#666666 borderColorLight=#666666 align=middle
bgColor=#6a7f9a borderColorDark=#666666><FONT face=Verdana
color=#ffffff>Copyright (c) 1999-2003 by <B>CnForce Grp.</B> All RIGHTS
RESERVED.</FONT> <BR><FONT face=Verdana color=#ffffff>Web powered by
武锐</FONT> <FONT face=Verdana color=#ffffff>wurui@bit.edu.cn</FONT>
</TD></TR></TBODY></TABLE></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -