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