亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? compiler.html

?? 清華大學(xué)linux系列講座第01個(gè)課件
?? HTML
字號(hào):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><HTML><HEAD>    <TITLE>Linux上的C/C++編譯器和調(diào)試器</TITLE>    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">    <META NAME="GENERATOR" CONTENT="StarOffice/5.1 (Linux)">    <META NAME="AUTHOR" CONTENT="Yongming Wei">    <META NAME="CREATED" CONTENT="20000329;17342600">    <META >    <STYLE>    <!--        H1 { color: #ffff00 }        H2 { color: #ffff00 }        H3 { color: #ff00ff }        H4 { color: #ffff00 }        TD P { color: #b880b8 }        LI { color: #ffffff }        P { color: #00ffff }        A:link { color: #00b8ff }        A:visited { color: #ff3366 }    -->    </STYLE></HEAD><BODY TEXT="#ffff00" LINK="#00b8ff" VLINK="#ff3366" BACKGROUND="../images/velvet.jpg"><A HREF="prog_script.html"><IMG SRC="prev.gif" ALT="Previous"></A><A HREF="make.html"><IMG SRC="next.gif" ALT="Next"></A><A HREF="index.html"><IMG SRC="toc.gif" ALT="Contents"></A><H1 ALIGN=CENTER>1.8&nbsp;&nbsp;Linux 上的 C/C++ 編譯器和調(diào)試器<BR><BR></H1><UL>    <LI><P>運(yùn)行 gcc/egcs</LI>    <LI><P>gcc/egcs 的主要選項(xiàng)</LI>    <LI><P>gdb</LI>    <LI><P>gdb 的常用命令</LI>    <LI><P>gdb 使用范例</LI>    <LI><P>其他程序/庫(kù)工具 (ar, objdump, nm, size, strings, strip, ...)</LI></UL><H3>1.8.1&nbsp;&nbsp;運(yùn)行 gcc/egcs</H3><P>Linux 中最重要的軟件開(kāi)發(fā)工具是 GCC。GCC 是 GNU 的 C 和 C++ 編譯器。實(shí)際上,GCC 能夠編譯三種語(yǔ)言:C、C++ 和 Object C(C 語(yǔ)言的一種面向?qū)ο髷U(kuò)展)。利用 gcc 命令可同時(shí)編譯并連接 C 和 C++ 源程序。</P><P>#DEMO#: hello.c</P><PRE>如果你有兩個(gè)或少數(shù)幾個(gè) C 源文件,也可以方便地利用 GCC 編譯、連接并生成可執(zhí)行文件。例如,假設(shè)你有兩個(gè)源文件 main.c 和 factorial.c 兩個(gè)源文件,現(xiàn)在要編譯生成一個(gè)計(jì)算階乘的程序。清單 factorial.c-----------------------#include <stdio.h>#include <stdlib.h>int factorial (int n){    if (n <= 1)        return 1;    else        return factorial (n - 1) * n;}----------------------------------------------清單  main.c-----------------------#include <stdio.h>#include <stdlib.h>int factorial (int n);int main (int argc, char **argv){    int n;    if (argc < 2) {        printf ("Usage: %s n\n", argv [0]);        return -1;    }    else {        n = atoi (argv[1]);        printf ("Factorial of %d is %d.\n", n, factorial (n));    }    return 0;}-----------------------利用如下的命令可編譯生成可執(zhí)行文件,并執(zhí)行程序:$ gcc -o factorial main.c factorial.c$ ./factorial 5Factorial of 5 is 120.</PRE><PRE>GCC 可同時(shí)用來(lái)編譯 C 程序和 C++ 程序。一般來(lái)說(shuō),C 編譯器通過(guò)源文件的后綴名來(lái)判斷是 C 程序還是 C++ 程序。在 Linux 中,C 源文件的后綴名為 .c,而 C++ 源文件的后綴名為 .C 或 .cpp。但是,gcc 命令只能編譯 C++ 源文件,而不能自動(dòng)和 C++ 程序使用的庫(kù)連接。因此,通常使用 g++ 命令來(lái)完完成 C++ 程序的編譯和連接,該程序會(huì)自動(dòng)調(diào)用 gcc 實(shí)現(xiàn)編譯。假設(shè)我們有一個(gè)如下的 C++ 源文件(hello.C):#include <iostream.h>void main (void){    cout << "Hello, world!" << endl;}則可以如下調(diào)用 g++ 命令編譯、連接并生成可執(zhí)行文件:$ g++ -o hello hello.C$ ./helloHello, world!</PRE><H3>1.8.2&nbsp;&nbsp;gcc/egcs 的主要選項(xiàng)</H3><PRE>                表 1-3  gcc 命令的常用選項(xiàng)選項(xiàng)                解釋-ansi               只支持 ANSI 標(biāo)準(zhǔn)的 C 語(yǔ)法。這一選項(xiàng)將禁止 GNU C 的某些特色,                    例如 asm 或 typeof 關(guān)鍵詞。-c                  只編譯并生成目標(biāo)文件。-DMACRO             以字符串“1”定義 MACRO 宏。-DMACRO=DEFN        以字符串“DEFN”定義 MACRO 宏。-E                  只運(yùn)行 C 預(yù)編譯器。-g                  生成調(diào)試信息。GNU 調(diào)試器可利用該信息。-IDIRECTORY         指定額外的頭文件搜索路徑DIRECTORY。-LDIRECTORY         指定額外的函數(shù)庫(kù)搜索路徑DIRECTORY。-lLIBRARY           連接時(shí)搜索指定的函數(shù)庫(kù)LIBRARY。-m486               針對(duì) 486 進(jìn)行代碼優(yōu)化。-o FILE             生成指定的輸出文件。用在生成可執(zhí)行文件時(shí)。-O0                 不進(jìn)行優(yōu)化處理。-O 或 -O1           優(yōu)化生成代碼。-O2                 進(jìn)一步優(yōu)化。-O3                 比 -O2 更進(jìn)一步優(yōu)化,包括 inline 函數(shù)。-shared             生成共享目標(biāo)文件。通常用在建立共享庫(kù)時(shí)。-static             禁止使用共享連接。-UMACRO             取消對(duì) MACRO 宏的定義。-w                  不生成任何警告信息。-Wall               生成所有警告信息。</PRE><P></P><H3>1.8.3&nbsp;&nbsp;gdb</H3><PRE>GNU 的調(diào)試器稱為 gdb,該程序是一個(gè)交互式工具,工作在字符模式。在 X Window 系統(tǒng)中,有一個(gè) gdb 的前端圖形工具,稱為 xxgdb。gdb 是功能強(qiáng)大的調(diào)試程序,可完成如下的調(diào)試任務(wù):* 設(shè)置斷點(diǎn);* 監(jiān)視程序變量的值;* 程序的單步執(zhí)行;* 修改變量的值。在可以使用 gdb 調(diào)試程序之前,必須使用 -g 選項(xiàng)編譯源文件。可在 makefile 中如下定義 CFLAGS 變量:CFLAGS = -g運(yùn)行 gdb 調(diào)試程序時(shí)通常使用如下的命令:gdb progname在 gdb 提示符處鍵入help,將列出命令的分類(lèi),主要的分類(lèi)有:* aliases:命令別名* breakpoints:斷點(diǎn)定義;* data:數(shù)據(jù)查看;* files:指定并查看文件;* internals:維護(hù)命令;* running:程序執(zhí)行;* stack:調(diào)用棧查看;* statu:狀態(tài)查看;* tracepoints:跟蹤程序執(zhí)行。鍵入 help 后跟命令的分類(lèi)名,可獲得該類(lèi)命令的詳細(xì)清單。</PRE><P>#DENO#</P><H3>1.8.4&nbsp;&nbsp;gdb 的常用命令</H3><PRE>                表 1-4  常用的 gdb 命令命令                        解釋break NUM               在指定的行上設(shè)置斷點(diǎn)。bt                      顯示所有的調(diào)用棧幀。該命令可用來(lái)顯示函數(shù)的調(diào)用順序。clear                   刪除設(shè)置在特定源文件、特定行上的斷點(diǎn)。其用法為:clear FILENAME:NUM。continue                繼續(xù)執(zhí)行正在調(diào)試的程序。該命令用在程序由于處理信號(hào)或斷點(diǎn)而                        導(dǎo)致停止運(yùn)行時(shí)。display EXPR            每次程序停止后顯示表達(dá)式的值。表達(dá)式由程序定義的變量組成。file FILE               裝載指定的可執(zhí)行文件進(jìn)行調(diào)試。help NAME               顯示指定命令的幫助信息。info break              顯示當(dāng)前斷點(diǎn)清單,包括到達(dá)斷點(diǎn)處的次數(shù)等。info files              顯示被調(diào)試文件的詳細(xì)信息。info func               顯示所有的函數(shù)名稱。info local              顯示當(dāng)函數(shù)中的局部變量信息。info prog               顯示被調(diào)試程序的執(zhí)行狀態(tài)。info var                顯示所有的全局和靜態(tài)變量名稱。kill                    終止正被調(diào)試的程序。list                    顯示源代碼段。make                    在不退出 gdb 的情況下運(yùn)行 make 工具。next                    在不單步執(zhí)行進(jìn)入其他函數(shù)的情況下,向前執(zhí)行一行源代碼。print EXPR              顯示表達(dá)式 EXPR 的值。<P></P><H3>1.8.5&nbsp;&nbsp;gdb 使用范例</H3><PRE>-----------------清單  一個(gè)有錯(cuò)誤的 C 源程序 bugging.c-----------------#include <stdio.h>#include <stdlib.h>static char buff [256];static char* string;int main (){    printf ("Please input a string: ");    gets (string);    printf ("\nYour string is: %s\n", string);}-----------------上面這個(gè)程序非常簡(jiǎn)單,其目的是接受用戶的輸入,然后將用戶的輸入打印出來(lái)。該程序使用了一個(gè)未經(jīng)過(guò)初始化的字符串地址 string,因此,編譯并運(yùn)行之后,將出現(xiàn) Segment Fault 錯(cuò)誤:$ gcc -o test -g test.c$ ./testPlease input a string: asfdSegmentation fault (core dumped)為了查找該程序中出現(xiàn)的問(wèn)題,我們利用 gdb,并按如下的步驟進(jìn)行:1.運(yùn)行 gdb bugging 命令,裝入 bugging 可執(zhí)行文件;2.執(zhí)行裝入的 bugging 命令;3.使用 where 命令查看程序出錯(cuò)的地方;4.利用 list 命令查看調(diào)用 gets 函數(shù)附近的代碼;5.唯一能夠?qū)е?gets 函數(shù)出錯(cuò)的因素就是變量 string。用 print 命令查看 string 的值;6.在 gdb 中,我們可以直接修改變量的值,只要將 string 取一個(gè)合法的指針值就可以了,為此,我們?cè)诘?/span> 11 行處設(shè)置斷點(diǎn);7.程序重新運(yùn)行到第 11 行處停止,這時(shí),我們可以用 set variable 命令修改 string 的取值;8.然后繼續(xù)運(yùn)行,將看到正確的程序運(yùn)行結(jié)果。</PRE><P>#DEMO#</P><H3>1.8.6&nbsp;&nbsp;其他程序/庫(kù)工具</H3><P>strip:</P><P>nm:</P><P>size:</P><P>string:</P><P><BR><BR></P><P ALIGN=CENTER><IMG SRC="../images/striped.gif" NAME="Ruler" ALIGN=BOTTOM WIDTH=532 HEIGHT=13 BORDER=0></P><P><BR><BR></P><A HREF="prog_script.html"><IMG SRC="prev.gif" ALT="Previous"></A><A HREF="make.html"><IMG SRC="next.gif" ALT="Next"></A><A HREF="index.html"><IMG SRC="toc.gif" ALT="Contents"></A></BODY></HTML>

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线看一区二区| 色视频一区二区| 亚洲午夜精品在线| 91精品国产aⅴ一区二区| 欧美日韩在线免费视频| 99国产精品国产精品毛片| 国产麻豆视频一区二区| 风间由美一区二区三区在线观看 | 亚洲福利一区二区| 亚洲三级在线播放| 欧美极品少妇xxxxⅹ高跟鞋| 国产日韩视频一区二区三区| 日韩一区二区三区免费观看| 欧美日韩国产小视频| 欧美视频一区在线| 欧美性生活大片视频| 欧美在线不卡视频| 国产在线一区观看| 国内精品写真在线观看| 精品一区二区三区在线播放| 麻豆视频一区二区| 国产中文字幕精品| 国产高清精品在线| 成人黄色一级视频| 欧美在线视频你懂得| 欧美午夜精品一区二区蜜桃 | 国产精品久久久久久久久动漫 | 成人免费视频caoporn| 99久久综合99久久综合网站| 99久久精品免费看| 色悠悠久久综合| 欧美一区二区三区日韩| 欧美一区二区三区四区高清| 日韩亚洲欧美一区| 国产欧美日本一区二区三区| 亚洲色图第一区| 亚洲一卡二卡三卡四卡无卡久久| 美日韩一级片在线观看| 国产激情一区二区三区| 波多野结衣欧美| 欧美精品乱码久久久久久| 欧美v日韩v国产v| 国产午夜三级一区二区三| 亚洲三级电影网站| 婷婷成人综合网| 国产一区二区三区在线观看免费| 成人午夜看片网址| 欧美三区在线观看| 精品国产一区a| 欧美一区二区国产| 一区二区中文视频| 日韩精品一二三四| 久久国产三级精品| 色哟哟欧美精品| 欧美一级欧美一级在线播放| 久久精品一区二区三区av | a级精品国产片在线观看| 欧美亚洲一区二区三区四区| 欧美精品一区二区三区四区| 亚洲欧美日韩国产手机在线| 日本最新不卡在线| 色婷婷激情一区二区三区| 日韩精品中文字幕在线一区| 国产精品久久久久久久岛一牛影视 | 99国产精品久久久久久久久久| a4yy欧美一区二区三区| 日韩一区二区免费高清| 国产精品不卡在线观看| 日韩中文字幕一区二区三区| 91尤物视频在线观看| 欧美电影免费观看高清完整版在线观看| 亚洲国产精品v| 黑人巨大精品欧美一区| 日本久久精品电影| 久久女同互慰一区二区三区| 人人超碰91尤物精品国产| 91麻豆123| 久久精品免费在线观看| 另类小说色综合网站| 欧美综合一区二区| 中文字幕+乱码+中文字幕一区| 极品尤物av久久免费看| 欧美日韩久久久| 中文在线一区二区 | 麻豆免费看一区二区三区| 一本到一区二区三区| 久久久蜜桃精品| 天天色天天操综合| 欧美三级蜜桃2在线观看| 国产精品素人视频| 久久狠狠亚洲综合| 精品区一区二区| 日韩高清不卡在线| 色94色欧美sute亚洲线路二 | 欧美性一二三区| 亚洲视频一区在线观看| 99久久伊人网影院| 国产三级精品三级| 国产一区二区伦理| 精品国产欧美一区二区| 美国十次综合导航| 欧美精品久久99| 日韩中文字幕一区二区三区| 欧美日韩在线一区二区| 亚洲美女屁股眼交| 国产精品一二三四区| 精品裸体舞一区二区三区| 午夜精品久久久久久久99水蜜桃 | 色综合久久综合网欧美综合网| 久久精品免视看| 国产一区二区看久久| 久久免费看少妇高潮| 国产一区二区三区香蕉| 欧美电影免费提供在线观看| 性欧美大战久久久久久久久| 日本韩国一区二区三区| 亚洲欧洲中文日韩久久av乱码| 国产风韵犹存在线视精品| 欧美高清在线视频| 成人在线视频一区二区| 国产精品九色蝌蚪自拍| 色综合中文字幕| 亚洲在线中文字幕| 在线欧美日韩国产| 日本aⅴ亚洲精品中文乱码| 日韩一级欧美一级| 美女一区二区三区| 精品国产一区二区三区不卡| 国产精品亚洲成人| 国产欧美一区在线| 99久久伊人精品| 亚洲午夜激情av| 欧美日本一区二区| 久久精品国产成人一区二区三区 | 日韩精品一区二区三区swag| 国产一区二区三区在线观看免费视频| 中文字幕的久久| 色综合久久中文综合久久97| 亚洲精品福利视频网站| 日韩小视频在线观看专区| 久久国产福利国产秒拍| 欧美国产一区在线| 日本韩国欧美在线| 日本欧美一区二区三区乱码| 26uuu国产日韩综合| 99麻豆久久久国产精品免费优播| 一区二区三区影院| 欧美一区二区三区在| 国产成人啪免费观看软件| 有码一区二区三区| 欧美一卡二卡三卡| 成人性色生活片免费看爆迷你毛片| 17c精品麻豆一区二区免费| 欧美日韩国产一级| 久久er99精品| 亚洲免费三区一区二区| 日韩午夜中文字幕| 成人动漫视频在线| 亚洲第一激情av| 中文av一区特黄| 欧美日韩国产另类一区| 国产麻豆成人精品| 亚洲线精品一区二区三区| 欧美本精品男人aⅴ天堂| 欧洲一区二区三区免费视频| 激情久久五月天| 亚洲综合无码一区二区| 久久人人超碰精品| 欧美日韩一区二区三区在线| 高清av一区二区| 婷婷综合另类小说色区| 国产日韩欧美精品综合| 日韩视频一区二区| 99re热视频这里只精品| 婷婷六月综合网| 亚洲免费资源在线播放| 精品国产区一区| 国产成人亚洲精品青草天美| 天堂影院一区二区| 国产精品白丝在线| 国产精品久久久一本精品| www.亚洲在线| 亚洲午夜电影网| 中文字幕成人在线观看| 6080亚洲精品一区二区| 91原创在线视频| 国产99精品国产| 美美哒免费高清在线观看视频一区二区 | 亚洲欧美另类综合偷拍| 久久久三级国产网站| 日韩欧美另类在线| 欧美日韩高清一区二区| 色天使久久综合网天天| 99视频在线观看一区三区| 国产91综合网| 国产成人啪午夜精品网站男同| 久久精品国产一区二区| 日本不卡在线视频| 五月天亚洲婷婷| 日韩精品一二三四|