久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

打造Windows下的C/C 命令行編譯環(huán)境 - 奕想飛揚(yáng)

 julyfire 2011-03-11
 在Linux下,Kris是 傾向于在終端中使用gcc和g++來(lái)編譯C/C++的,在Windows下相信很多人都是選擇臃腫的Visual Studio,,我亦不免如此。但是,,我希望在Windows下也能像Linux下一樣簡(jiǎn)潔編程,,于是開(kāi)始了我的Windows下的C/C++命令行編譯環(huán) 境打造之路。

  幾乎沒(méi)有人會(huì)否認(rèn)集成開(kāi)發(fā)環(huán)境 (IDE)(例如,,Visual Studio,,NetBeans,Eclipse)所提供的能使編程工作變得相當(dāng)簡(jiǎn)單的諸多功能,。但,,還是說(shuō)說(shuō)命令行編譯的好處吧。

  1,、偏愛(ài)最簡(jiǎn)單的生成
  2,、希望揭開(kāi) IDE 處理源代碼文件的方法的秘密
  3、深入了解計(jì)算機(jī)語(yǔ)言并得到擴(kuò)展

  事實(shí)上,,使用命令行工具編譯的感覺(jué)將證明很有幫助,。

  怎 么打造Windows下的C/C++命令行編譯環(huán)境呢?使用Cygwin在Windows上模擬Linux環(huán)境,,然后利用gcc/g++,,顯然這也是復(fù)雜 的折騰。既然我已經(jīng)裝了Visual Studio,,那么我應(yīng)該好好利用其cl編譯器,。OK,,步驟記錄如下(這里說(shuō)明一下,我的環(huán)境是Windows 7 + Visual Studio 2010,,其中VS 2010安裝位置是D盤(pán)):

  1,、修改環(huán)境變量
     在系統(tǒng)屬性-高級(jí)-環(huán)境變量-用戶變量中:
     編輯PATH增加cl編譯器的路徑D:\Program Files\Microsoft Visual Studio 10.0\VC\bin以及MSPDB60.DLL的路徑D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE,用分號(hào)分隔,。
     新建變量INCLUDE:D:\Program Files\Microsoft Visual Studio 10.0\VC\include
     新建變量LIB:D:\Program Files\Microsoft Visual Studio 10.0\VC\lib



  2,、 在命令提示符(CMD)中運(yùn)行cl,,若出錯(cuò)提示LINK : fatal error LNK1104: 無(wú)法打開(kāi)文件“kernel32.lib”,,則把C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib目錄下的kernel32.lib拷貝到D:\Program Files\Microsoft Visual Studio 10.0\VC\lib目錄下。

  3,、試試效果,,在CMD中輸入cl main.cpp,其中main.cpp內(nèi)容如下:

#include
#define _(_) putchar(_);
int main(void){int i = 0;_(
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++i)_(++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++i)_(++++++++++++++
i)_(--++i)_(++++++i)_(------
----------------------------
----------------------------
----------------------------
----------------------------
----------------i)_(--------
----------------i)_(++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++i)
_(----------------i)_(++++++
i)_(------------i)_(--------
--------i)_(----------------
----------------------------
----------------------------
----------------------------
----------------------------
------i)_(------------------
----------------------------
i)return i;}


  編譯結(jié)束之后,,運(yùn)行main.exe結(jié)果會(huì)是什么呢,?Oops,傳說(shuō)中的Hello World 哎,!



  附錄cl編譯器命令的簡(jiǎn)單用法:
引用內(nèi)容 引用內(nèi)容

(1)  cl 直接生成exe文件

     多文件編譯

     在main,cpp    函數(shù)中,包含mysum.cpp , mycheng.cpp文件

     mysum.cpp     中包含mysum函數(shù)的方法

     mycheng.cpp   中包含mycheng函數(shù)的方法

     執(zhí)行

     cl  main.cpp

     生成main.exe可執(zhí)行文件

////////////////////////////////////////////////////////////////////////////////////////////////////////

////main.cpp


#include

#include "mysum.cpp"

#include "mycheng.cpp"


void main()

{

     double dresult=mysum(3.6 , 3.4);

     cout<<"3.6 + 3.4 ="<<

     cout<<"3x6="<<

}

    


////////////////////////////////////////////////////////////////////////////////////////////////////////

////mysum.cpp

double mysum(double dx,double dy)

{

      double dsum=dx+dy;

      return dsum;

}


////////////////////////////////////////////////////////////////////////////////////////////////////////

////mycheng.cpp

double dcheng()

{

    return 3.0*6.0;

}

////////////////////////////////////////////////////////////////////////////////////////////////////////


Result:

3.6 + 3.4 =7

3x6=18




(2)  cl 生成obj文件,再link obj 文件,間接生成exe文件

     將函數(shù)聲明和函數(shù)的實(shí)現(xiàn)分開(kāi),頭文件的作用就是函數(shù),類(lèi),變量的聲明.

     如果在.h文件中加入了函數(shù)的實(shí)現(xiàn)部分,那么就破壞了文件的聲明作用.

     如果這樣,那么編譯文件時(shí),文件的邏輯順序混亂.


//mysum.h


double mysum(double dx,double dy);


//mycheng.h

double dcheng();


//mysum.cpp

double mysum(double dx,double dy)

{

      double dsum=dx+dy;

      return dsum;

}


//mycheng.cpp

double dcheng()

{

    return 3.0*6.0;

}


//main.cpp


#include

#include "mysum.h"

#include "mycheng.h"


void main()

{

     double dresult=mysum(3.6 , 3.4);

     cout<<"3.6 + 3.4 ="<<

     cout<<"3x6="<<

}


//////////////////////////////////////

輸入命令順序

cl /c main.cpp  

//生成main.obj



cl /c mysum.cpp

//生成   mysum.obj


cl /c mycheng.cpp

//生成   mycheng.obj


link mycheng.obj mysum.obj main.obj

//生成   mycheng.exe //大家可以看到,采用任何一種files.obj的文件順序,都可以生成//exe 文件,而生成的exe文件名就是第一個(gè)obj文件名,。


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  通過(guò)第二部分,頭文件,,源文件怎樣組織在一起的困惑就解開(kāi)了,。頭文件只起到一個(gè)聲明作用,就像變量聲明一樣,。Link 將files.obj文件鏈接在一起,,就在鏈接的過(guò)程中,就把頭文件,,源文件的obj組織起來(lái)了,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多