国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
C語言編譯器MINGW的使用說明
在mingw環(huán)境中生成和使用dll都是十分方便的。
1.生成dll
gcc(g++) -shared -o test.dll test.c 
 
一直用VS,看現(xiàn)在Eclipse很火,便想弄一下玩玩,用到了MINGW,繼而用到了GCC,對GCC相當?shù)牟皇煜?,從頭開始學一些簡單的吧。
 
簡單的GCC用法~
gcc命令提供了非常多的命令選項,但并不是所有都要熟悉,初學時掌握幾個常用的就可以了,到后面再慢慢學習其它選項,免得因選項太多而打擊了學習的信心。
一. 常用編譯命令選項
假設(shè)源程序文件名為test.c。
1. 無選項編譯鏈接
用法:#gcc test.c
作用:將test.c預處理、匯編、編譯并鏈接形成可執(zhí)行文件。這里未指定輸出文件,默認輸出為a.out。編譯成功后可以看到生成了一個a.out的文件。在命令行輸入./a.out 執(zhí)行程序。./表示在當前目錄,a.out為可執(zhí)行程序文件名。
2. 選項 -o
用法:#gcc test.c -o test
作用:將test.c預處理、匯編、編譯并鏈接形成可執(zhí)行文件test。-o選項用來指定輸出文件的文件名。輸入./test執(zhí)行程序。
3. 選項 -E <大寫,注意>
用法:#gcc -E test.c -o test.i
or
作用:將test.c預處理輸出test.i文件。
4. 選項 -S <大寫,注意>
用法:#gcc -S test.i
作用:將預處理輸出文件test.i匯編成test.s文件。
5. 選項 -c
用法:#gcc -c test.s
作用:將匯編輸出文件test.s編譯輸出test.o文件。
6. 無選項鏈接
用法:#gcc test.o -o test
作用:將編譯輸出文件test.o鏈接成最終可執(zhí)行文件test。輸入./test執(zhí)行程序。
7. 選項-O
用法:#gcc -O1 test.c -o test
作用:使用編譯優(yōu)化級別1編譯程序。級別為1~3,級別越大優(yōu)化效果越好,但編譯時間越長。輸入./test執(zhí)行程序。
二. 多源文件的編譯方法
如果有多個源文件,基本上有兩種編譯方法:
[假設(shè)有兩個源文件為test.c和testfun.c]
1. 多個文件一起編譯
用法:#gcc testfun.c test.c -o test
作用:將testfun.c和test.c分別編譯后鏈接成test可執(zhí)行文件。
2. 分別編譯各個源文件,之后對編譯后輸出的目標文件鏈接。
用法:
#gcc -c testfun.c //將testfun.c編譯成testfun.o
#gcc -c test.c //將test.c編譯成test.o
#gcc  testfun.o test.o -o test //將testfun.o和test.o鏈接成test

以上兩種方法相比較,第一中方法編譯時需要所有文件重新編譯,而第二種方法可以只重新編譯修改的文件,未修改的文件不用重新編譯。
  

1. gcc的家族成員
    總的來說,gcc應該是一個編譯器??墒?,為什么我還要在這里介紹gcc的家族成員呢?其實,整套的gcc環(huán)境并不是由gcc構(gòu)成的,他是由多個包所組成的。這些包的互相作用產(chǎn)生了gcc的開發(fā)環(huán)境。其中,有一些包是你開發(fā)應用程序所必備的基本包。離開這些包你將無法正常使用gcc。
    gcc開發(fā)環(huán)境包括如下幾大包:
    binary                         基本包   提供基本的匯編器,連接器等
    gcc                            基本包   各種語言的編譯器,包括C,C++,Ada,Java等
    Win32api,mingwi-runtime/glibc  基本包   系統(tǒng)函數(shù)庫
    make/automake                  需要包   管理項目編譯的程序
    gdb                            附加包   調(diào)試程序
2. gcc的常用編譯參數(shù)

    同VC,TC等編譯器不同,gcc其實是可以很方便的在提示符下編譯程序的。gcc在提示符下編譯程序,并沒有如同VC那樣的冗長而晦澀的編譯參數(shù)。相反,卻有著比VC更靈活且簡短的參數(shù)。
    不得不承認,不懂gcc編譯參數(shù)的人,確實會損失一些gcc的強大功能。所以,我下面簡單介紹一下gcc的一些基本編譯參數(shù)。這里,我以C編譯器為例。
    注意:gcc的編譯參數(shù)是區(qū)分大小寫的。
    
    編譯二進制代碼
    gcc -c yours.c -o yours.o
    使用這段指令,gcc將會把yours.c編譯成yours.o的二進制代碼。其中,yours.o就類似于VC,TC中的.obj文檔。

    編譯最簡單的小程序
    gcc -o yours yours.c
    通過這條指令,gcc將會把yours.c源代碼編譯成名為yours的可執(zhí)行程序。當然,您也可以將yours.c改成我們剛才介紹的yours.o文件。這樣,gcc將使用編譯剛才編譯好的二進制文檔來鏈接程序。這里,格式的特點是,-o 后面是一串文件列表,第一個參數(shù)是所編譯程序的文件名,從第二個開始,就是您編譯和連接該可執(zhí)行程序所需要的二進制文檔或者源代碼。

    編譯時將自己的頭文件目錄設(shè)為默認頭文件目錄
    gcc -I”Your_Include_Files_Document_Path” -c yours.c -o yours.o
    這條指令中的-I參數(shù)將會把Your_Include_Files_Document_Path添加到你默認的頭文件目錄中。這樣您將可以使用 #include <your_include.h>來導入頭文件。

    編譯時使用自己的靜態(tài)庫存放目錄
    gcc -L”Your_Lib_Files_Document_Path” -o yours yours.o
    這條指令將會讓gcc在連接時除了在默認Lib存放目錄中搜索指定的靜態(tài)庫以外,還會在Your_Lib_Files_Document_Path中搜索。

    編譯時使用靜態(tài)連接庫
    gcc -lyour_lib -o yours yours.o
    這條指令將會讓gcc在連接時把 libyour_lib.a中您所用到的函數(shù)連接到可執(zhí)行程序中。此處注意,gcc所使用的靜態(tài)連接庫是lib*.a格式的。在連接時,只且僅需要提供*的內(nèi)容就可以了。

    編譯時使用優(yōu)化
    gcc -O2 -c yours.c -o yours.o
    使用優(yōu)化方式編譯程序,其中除了-O2以外,還有-O3 -O1等等。他們代表不同的優(yōu)化等級。最常用的,是-O2優(yōu)化。當然,還有針對特殊CPU的優(yōu)化,這里就不介紹了。

    編譯時顯示所有錯誤和警告信息
    gcc -Wall -c yours.c -o yours.o
    gcc在默認情況下,將對一些如變量申請未使用這樣的問題或者申請了沒有給予初始值的問題忽略。但是,如果使用了-Wall參數(shù),編輯器將列出所有的警告信息。這樣,您就可以知道您的代碼中有多少可能會在其他操作系統(tǒng)下出錯的地方了。(用這個指令看看你的代碼有多少地方寫的不怎么合適。)

    編譯連接時,加入調(diào)試代碼
    gcc -g -o yours yours.c
    正如同VC有debug編譯模式一樣,gcc也有debug模式。添加了-g 參數(shù)編譯的可執(zhí)行程序比普通程序略為大一些,其中添加了一些調(diào)試代碼。這些代碼將被gdb所支持。

    連接時縮小代碼體積
    gcc -s -o yours yours.o
    因為有人說Visual-MinGW生成的代碼小,于是研究了一下它的編譯參數(shù),發(fā)現(xiàn)release模式的編譯參數(shù)就加了這一項。貌似編譯后的代碼的確縮小了很多。
    反匯編
    gcc -S yours.c
    用這個指令能把C語言變成匯編語言,不過不是常見的Intel語法,而是AT&T語法。兩者的語法有很大的區(qū)別。

    獲得幫助
    gcc --help
    這條指令從意思上就能看出,獲得gcc的幫助信息。如果您有什么特殊需要,也許這個指令能幫上點小忙。

    總結(jié):
    gcc的編譯參數(shù)是可以組合起來的,如:
    gcc yours.c -o yours -Wall -s -O2
    預告:下一篇將介紹用gdb調(diào)試C程序 
 
 
MinGW入門(1)——搭建開發(fā)環(huán)境
半糖主義    發(fā)表于2008年02月10日 00:30 閱讀(178) 評論(1)
分類: MinGW 舉報
 
 
    GCC是一個原本用于Unix系統(tǒng)下編程的編譯器。不過,現(xiàn)在GCC也有了許多Win32下的移植版本。所以,也許對于許多Windows開發(fā)者來說,GCC還是一個比較陌生的東西。
    目前GCC在windows下有三個移植版本:MinGW、Cygwin和Djgpp。筆者對MinGW比較熟悉,而其它2個沒怎么用過。本文主要講述如何安裝和配置MinGW。
    MinGW是Minimalistic GNU for Windows 的縮寫。它是一個建立在GCC和binutils 項目上的編譯器系統(tǒng)。和其他GCC的移植版相比,它可以說是最接近Win32的一個了。因為,MinGW幾乎支持所有的Win32 API,這也是MinGW的特色之一。它所連接的程序,不需要任何第三方庫就可以運行了。在某種程度上看,MinGW更像是VC的替代品。
    MinGW可以從http://www.mingw.org上獲得。
    要安裝MinGW有兩種方案:
    第一種方案:手動安裝
    到http://sourceforge.net/project/showfiles.php?group_id=2435下載以下幾個壓縮包??紤]到文件的更新,筆者只寫出文件的主要部分,省去文件的版本和更新日期(注:帶有src表示源代碼)。
    gcc-core:C語言編譯器,目前有2、3、4三個版本,推薦使用最新的。
    gcc-g++:C++語言編譯器,版本同上。(可選)
    binutils:MinGW的匯編器和連接器等基礎(chǔ)工具。
    mingw32-make:Make工具,用以管理你的項目。
    gdb:MinGW調(diào)試器。
    win32api:win32的API函數(shù)頭文件和連接庫
    mingw-runtime:MinGW的運行時庫
    把以上的壓縮包解壓到一個目錄中,如F:\MinGW。
    注:MinGW還包括一個MSYM(Minimal SYStem)。這個工具是用來模仿Unix Shell,它可以把Unix上的命令轉(zhuǎn)換成Windows命令,如果習慣Unix可以下載這個工具。
    把MinGW的目錄 F:\MinGW\bin 添加進%PATH%環(huán)境變量中,可以在系統(tǒng)屬性那里永久設(shè)置,或者建一個bat文件,寫入以下字符:
    set Path=%PATH%;F\MinGW\bin
    然后進入DOS運行這個bat文件即可。
    最后在MS-DOS環(huán)境下運行:
    gcc -v
    如果顯示類似下面一段GCC的版本信息,說明你安裝的MinGW能正常工作了。
    C:\>gcc -v
    Using built-in specs.
    Target: mingw32
    Configured with: ../gcc-4.2.1/configure --with-gcc --enable-libgomp --host=mingw32 --build=mingw32 --target=mingw32 --program-suffix=-sjlj --with-arch=i486 --with-tune=generic --disable-werror --prefix=/mingw --with-local-prefix=/mingw --enable-threads --disable-nls --enable-languages=c,c++,fortran,objc,obj-c++,ada --disable-win32-registry --enable-sjlj-exceptions --enable-libstdcxx-debug --enable-cxx-flags=-fno-function-sections -fno-data-sections --enable-version-specific-runtime-libs --disable-bootstrap
    Thread model: win32
    gcc version 4.2.1-sjlj (mingw32 sjlj-unwind)
    第二種方案:自動安裝
    到http://sourceforge.net/project/showfiles.php?group_id=2435下載MinGW-x.x.x.exe。安裝過程它會自動從網(wǎng)上下載相應的文件,并自動配置好環(huán)境。相信對于Windows下的開發(fā)人員沒什么問題了。
    在2種安裝方法,筆者偏愛第一種。因為控制度高,比較自由,要更新什么文件直接下載覆蓋即可。第二種方案還有一個缺點,就是它下載的文件可能不是最新的。
    這樣,你就可以在任何目錄下使用MinGW了。
    后記:想當初筆者自己在安裝配置MinGW的時候,不知走了多少彎路。在上網(wǎng)找了很多資料,看了N多的E資料,最終把MinGW開發(fā)環(huán)境搭建起來?,F(xiàn)在想想,如果當時有位高手指點一下,就可以省下很多時間了?,F(xiàn)在,筆者就把自己使用MinGW的經(jīng)驗寫來,供一些剛?cè)腴T的朋友參考。
    相信很多朋友在學C語言的時候都看潭浩強的書,這本書用的是Turbo C 2.0編譯器。這個編譯是DOS下的編譯器,不支持windows,早就過時了,而第三版用的是Turbo C++ 3.0和VC++ 6.0。VC++是商用的,而且很貴。開發(fā)人員要有版權(quán)意識,如果不想掏錢的話就用免費的編譯器,GCC是一個不錯的選擇。
 
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
打造UltralEdit
windows下使用makefile編譯C語言
gcc命令
Windows下使用GNU編譯器
GCC指令
幾款常見C++編譯器的比較
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服