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