• 通过命令行使用cl.exe编译器


    转载http://www.cnblogs.com/mizhongqin/archive/2013/03/11/cmd_cl-exe_vs2010.html

    与在IDE中编译相比,命令行模式编译速度更快,并可以避免被IDE产生的一些附加信息所干扰,下面介绍在Win7 命令行下编译C++。

    1、 首先要正确安装Visual Studio 2010,安装路径(D:Program Files)

    2、设置环境变量:

    PATH=D:Program FilesMicrosoft Visual Studio 10.0VCin

    INCLUDE=D:Program FilesMicrosoft Visual Studio 10.0VCinclude

    LIB=D:Program FilesMicrosoft Visual Studio 10.0VClib

    2、写一个hello world C++程序

    /*the first C++ program*/
    #include <iostream>
    using namespace std;
    //main function
    int main()
    {
        cout<<"Hello world!"<<endl;
        cout<<"This is my first C++ program.
    ";
    }

    保存路径 C:Userszhongqin.mihello.cc

    3、重启电脑,打开命令行,执行如下命令

    其中,cl是调用编译器的命令,-GX是一个选项,该选项在使用命令行界面编译程序时是必须的。微软编译器自动产生与源文件同名的可执行文件,

    这个可执行文件具有.exe后缀且与源文件同名,更多信息可以参考编译器用户指南。

    注意:(2015年5月27日15:45:59添加)

    在第二步中环境变量的配置中,其实可以不用配置,只是在每次使用cl.exe之前,运行一遍vcvarsall.bat(在“vs安装路径VC”路径下)即可,运行vcvarsall.bat后,就可以使用cl.exe,link.exe和Nmake.exe,只是每次使用前都要运行一遍vcvarsall.bat,并且只能在运行vcvarsall.bat的cmd窗口才能使用以上三个exe。

    4、常见问题

        4.1 如果提示找不到mspdb100.dll文件,则从D:Program FilesMicrosoft Visual Studio 
    10.0Common7IDE下拷贝“mspdb80.dll”这四个文件到D:Program 
    FilesMicrosoft Visual Studio 10.0VCin下即可。

       4.2 如果执行 cl命令时遇到提示  LINK : fatal error LNK1104: 无法打开文件“kernel32.lib”, 则把C:Program FilesMicrosoft SDKsWindowsv7.0ALib目录下的kernel32.lib拷贝到D:Program 
    FilesMicrosoft Visual Studio 10.0VClib目录下即可。

    --------------------------------------------------------------------------分割线------------------------------------------------------------------------

    2015年5月27日16:51:38

    如果有多个文件要一起编译连接呢,自己动手做了如下简单的入门体验。

    首先创建如下源文件heade.h,header.cpp,main.cpp

    //header.h

    #ifndef _HEADER_H
    #define _HEADER_H
    
    class A
    {
    public:
        A();
        A(int);
        void print();
    private:
        int member;
    };
    
    #endif

    //header.cpp

    #include "header.h"
    #include <iostream>
    using namespace std;
    
    A::A()
    {
        member = 0;
    }
    A::A(int init)
    {
        member = init;
    }
    
    void A::print()
    {
        cout << member <<endl;
    }

    //main.cpp

    #include <iostream>
    #include "header.h"
    using namespace std;
    
    int main()
    {
        cout << "Hello world!
    ";
        A a(100);
        a.print();
        return 0;
    }

    然后按照上面介绍的方法,在cmd中输入:cl main.cpp header.cpp

  • 相关阅读:
    MySQL架构备份
    MySQL物理备份 xtrabackup
    MySQL物理备份 lvm-snapshot
    MySQL逻辑备份mysqldump
    MySQL逻辑备份into outfile
    MySQ数据备份
    前端基础-- HTML
    奇淫异巧之 PHP 后门
    php中代码执行&&命令执行函数
    windows进程中的内存结构(缓冲溢出原理)
  • 原文地址:https://www.cnblogs.com/LCCRNblog/p/4532643.html
Copyright © 2020-2023  润新知