微软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

 

posted @ 2012-05-02 21:16  KingsLanding  阅读(8142)  评论(0编辑  收藏  举报