使用MS VS的命令来编译C++程序
程序员文章站
2022-05-06 19:09:10
...
以前,我是在linux下使用命令或者makefile来编译C++程序的,最近需要在windows上做点测试。于是使用ms VS来作为开发工具,这种大揽全包的IDE确实好用:点一下菜单,编译结果就出来了。可是我的测试需要知道这些编译和连接到底怎样处理的。于是,在网上找了找,自己做了个测试。以下是记录使用ms VS的命令来编译和连接C++程序。备参考。
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下面的操作很像呢?
使用环境变量配置的方式来简化命令
在网上查了另外一种比较简单的使用命令的办法。就是把程序所需要的头文件和库文件,都设置在环境变量里。具体如下:
头文件
INCLUDE="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include"
库文件
LIB="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib";"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib"
然后在打开新的命令行窗口并编译程序:
cl basic_main.cpp
这样,同样可以生成出可执行程序。
源代码:
#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下面的操作很像呢?
使用环境变量配置的方式来简化命令
在网上查了另外一种比较简单的使用命令的办法。就是把程序所需要的头文件和库文件,都设置在环境变量里。具体如下:
头文件
INCLUDE="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include"
库文件
LIB="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib";"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib"
然后在打开新的命令行窗口并编译程序:
cl basic_main.cpp
这样,同样可以生成出可执行程序。
上一篇: MSVC 配置环境变量
下一篇: gcc宏区分Win和Linux
推荐阅读
-
使用Ruby来编写访问Twitter的命令行应用程序的教程
-
使用C++来编写Ruby程序扩展的教程
-
C++ 实验二 NO.1_(3) 1:熟悉DEV环境,练习自己的第一个程序使用DEV集成环境来编辑,运行简单的数据输入和运算实验。(3)编写一个程序,要求:提示输入3个数;显示这3个数,求他们的平均值
-
使用VS Code编译调试C++程序
-
在Linux系统中使用GDB来调试C/C++程序的方法
-
使用Lua来扩展C++程序的方法
-
使用VS2022开发在线远程编译部署的C++程序(图文详解)
-
Windows下使用命令行编译C++程序
-
Windows下使用MinGW在命令行编译运行C++程序
-
Linux下C程序的编辑,编译和运行以及调试(c++使用g++)