使用MS VS的命令来编译C++程序

以前,我是在linux下使用命令或者makefile来编译C++程序的,最近需要在windows上做点测试。于是使用ms VS来作为开发工具,这种大揽全包的IDE确实好用:点一下菜单,编译结果就出来了。可是我的测试需要知道这些编译和连接到底怎样处理的。于是,在网上找了找,自己做了个测试。以下是记录使用ms VS的命令来编译和连接C++程序。备参考。

源代码:

#include <map>

using namespace std;

int main (int argc, char **argv)
{
    cout<<__FILE__<<":"<<__LINE__<<"\t"<<__FUNCTION__<<"\tprocess begin at "<<(void*)main<<endl;

    map<string,int> mpa;
    mpa.insert(make_pair("key1",1));
    mpa.insert(make_pair("key2",2));
    mpa.insert(make_pair("key3",3));
    for(map<string, int>::iterator itr = mpa.begin(); itr != mpa.end(); itr++ )
    {
        cout<<itr->first<<"\t"<<itr->second<<endl;
    }

    cout<<mpa.find("key1")->second<<endl;
    mpa.find("key1")->second = 11;
    cout<<mpa.find("key1")->second<<endl;

    cout<<"========================"<<endl;

    map<string,int>::iterator itr = mpa.find("key1");
    if (itr != mpa.end())
    {
        itr->second = 100;
    }
    cout<<mpa.find("key1")->second<<endl;
    //下面的程序会core
    //cout<<mpa.find("key12")->second<<endl;

    system("pause");

    return 0;
}

--编译
cl /c -I"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include" basic_main.cpp

--连接
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\libcpmt.lib" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\libcmt.lib" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\oldnames.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\Kernel32.Lib" basic_main.obj

-- 编译和连接同时进行
cl /FA -I"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\libcpmt.lib" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\libcmt.lib" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\oldnames.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\Kernel32.Lib" basic_main.cpp

编译后的结果就是在cpp所在的目录有一个basic_main.exe,命令行运行即可。结果略。
根据命令看,是不是和linux下面的操作很像呢?

猜你喜欢

转载自www.cnblogs.com/babyha/p/9138561.html