微軟cl編譯器的簡單使用


cl的位置:

開始 –> 所有程序 -> Microsoft Visual Studio ->

Visual Studio Tools -> Developer Command Prompt

編譯器產生通用對象文件格式 (COFF) 對象 (.obj) 文件。鏈接器產生可執行文件 (.exe) 或動態鏈接庫文件 (DLL)。

注意,所有編譯器選項都區分大小寫。

若要編譯但不鏈接,請使用/c。

語法:

CL [option...] file... [option | file]... [lib...] [@command-file] [/link link-opt...]

選項option具體內容可以查看 :

http://msdn.microsoft.com/zh-cn/library/fwkeyyhe%28v=vs.80%29.aspx

 

cl 直接生成exe文件:

多文件編譯

在main,cpp 函數中,包含mySum.cpp , multi.cpp文件

mySum.cpp 中包含mySum函數的方法

multi.cpp 中包含multiple函數的方法

執行

cl main.cpp

生成main.exe可執行文件

#include <iostream>

#include "mySum.cpp"

#include "multi.cpp"

using namespace std;

void main()

{

     double dresult=mySum(3.6 , 3.4);

     cout<<"3.6 + 3.4 ="<<dresult<<endl;

     cout<<"3 x 6="<<multiple(3.0 , 6.0)<<endl;

}

 

////multi.cpp

double multiple(double a, double b)

{

    return a * b;

}

 

////mySum.cpp

double mySum(double dx,double dy)

{

      double dsum=dx+dy;

      return dsum;

}

 

cl 生成obj文件,再link obj 文件,間接生成exe文件將函數聲明和函數的實現分開,頭文件的作用就是函數,類,變量的聲明.如果在.h文件中加入了函數的實現部分,那么就破壞了文件的聲明作用.

//main_.cpp

#include <iostream>

#include "mySum.h"

#include "multi.h"

using namespace std;

void main()

{

     double dresult=mySum(3.6 , 3.4);

     cout<<"3.6 + 3.4 ="<<dresult<<endl;

     cout<<"3 x 6="<<multiple(3.0, 6.0)<<endl;

}

 

//multi.h

double multiple(double a, double b);

 

//multi.cpp

#include"multi.h"

double multiple(double a, double b)

{

    return a*b;

}

 

//mySum.h

double mySum(double dx,double dy);

 

//mySum.cpp

#include"mySum.h"

double mySum(double dx,double dy)

{

      double dsum=dx+dy;

      return dsum;

}

編譯:

cl /c main_.cpp

//生成main_.obj

 

cl /c mySum.cpp

//生成 mySum.obj

 

cl /c multi.cpp

//生成 multi.obj

 

link main_.obj mySum.obj multi.obj

//生成 main_.exe

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM