zoukankan      html  css  js  c++  java
  • 微软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

    make it simple, make it happen
  • 相关阅读:
    ABCD 谁是小偷
    三剑客-awk(简写)
    三剑客-sed(简写)
    Mysql锁
    MySQL两种内核对比
    netty源码分析(一)
    netty源码分析(二)
    网络编程之NIO
    网络编程之ByteBuffer
    线程池的原码分析(二)
  • 原文地址:https://www.cnblogs.com/zhuyp1015/p/2479589.html
Copyright © 2011-2022 走看看