Windows系统下用命令行编译C/C++程序过程总结

转自:http://www.cnblogs.com/caikehe/archive/2013/01/12/2858017.html

(1)先用记事本编写如下所示的代码,并另存为hello.cpp,假设其保存路径为C:\Users\Administrator\Desktop。

#include

using namespace std;

int main()

{

cout<<"hello world!"<<endl;< span="">

return 0;

}

(2)用记事本写一段简单的批处理文件,内容如下所示,在保存文件时选择另存为,文件名假设为batch.bat,bat是批处理文件的后缀,保存类型选择:所有文件(这个尤其需要注意),假设其保存路径也是C:\Users\Administrator\Desktop。

set path=D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\bin

set include=D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\include

set lib=D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\lib

上面批处理文件的第一句话表示设置环境变量,这个也可以通过:计算机/属性/高级系统设置/环境变量/用户变量,D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\bin放到path的值里去,记得与之前已有值之间用";"隔开。这个path文件夹是我们装载VS2010时自带的,在设置路径时要根据自己的安装路径进行修改,里面包含微软在Windows下给我们提供的C/C++编译器cl.exe程序(编译器自身也是一个软件程序,只是它的作用是用来编译其它的程序),当然还有link.exe链接程序,调用cl时,系统会自动调用link程序(后面将看到我们只用了cl命令就可以进行C/C++程序的编译、链接)。后面两句话分别表示包含C++中自带的头文件库和静态链接库,静态理解库包含了头文件中函数对应的实现部分,为了不让人们看到其中的源代码,它以二进制文件形式编码,若要查看其内容需要进行反汇编。

(3)通过cmd命令进入DOS操作界面,输入cd C:\Users\Administrator\Desktop进入cpp文件和bat批处理文件所在的位置,然后键入batch.bat进行批处理,这些操作在VS2010集成开发环境中都为我设置好了,所以我们在里面写C/C++程序时并没有这样设置路径的繁琐操作,但是通过自己手动的路径设置,我们会对程序的编译、链接、执行有更加深入的认识。

(4)键入cl hello.cpp,我们会看到计算机报出了“无法启动此程序,因为计算机中丢失mspdb100.dll。尝试重新安装该程序以解决此问题”的系统储物,dll文件是动态链接库文件,其是在cl.exe程序运行时才被加载进来的文件,这个静态链接库lib文件不同。这说明在D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\bin路径里没有找到mspdb100.dll,原来此文件在文件夹D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\Common7\IDE里,我们可以将此文件拷到bin文件夹里,或将D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\Common7\IDE加到批处理的path环境变量里,或者将其加到cpp文件所在的文件夹里,这只会引起在搜索顺序上的不同。

(5)再次键入cl hello.cpp,我们看到在C:\Users\Administrator\Desktop文件夹里得到了hello.obj文件,这是编译后的输出文件,但是没有得到可执行exe文件,DOS界面里出现这样的错误“LINK:fatal error LNK1104:cannot open file ‘kernel32.lib‘ “这样的链接错误,kernel32.lib是Windows系统文件,通过Windows自带的搜索工具,我们看到此文件在文件夹C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib里,我们可以将其加到cpp文件所在的文件夹或bin文件里。再次键入cl hello.cpp,我们发现这次程序被成功编译链接了,cpp文件所在的文件夹里多了两个文件:hello.obj和hello.exe。

(6)在DOS界面键入hello.exe,程序被执行,输出了我们预想的hello world!,至此,在Windows下模拟linux命令行操作,编译C/C++文件全部完成了。

时间: 2024-12-21 23:05:38

Windows系统下用命令行编译C/C++程序过程总结的相关文章

Tools - Windows系统下的命令行工具Cmder

cmder简介 官网:http://cmder.net/ GitHub:https://github.com/cmderdev/cmder Cmder是一个windows下的命令行工具,用来替代windows自带的cmd,非常简洁美观易用. 完整版cmder内建msysgit,支持git和常用Linux命令 支持左右上下分屏, 多 tab 终端 绿色便携,解压即可使用 cmder的组成 cmder结合了msysgit.ConEmu与Clink等多个程序组件,因此也同时具备了多种组件的功能. ms

windows下使用命令行编译、链接C++源文件

目录 1.流程 2.操作 1.流程 .cpp-->.o-->.exe 分别为 源文件-->中间目标文件-->可执行文件 两个-->的过程分别为编译.链接 p.s.多个 .o 文件可以打包为库文件.lib文件 2.操作 文件地址为e:\a.cpp 内容为 #include <stdio.h> using namespace std; int main(void) { char c[10]; scanf("%s",c,9); printf(&quo

关于windows环境下cordova命令行无法启动adb.exe的解决办法

使用phonegap开发手机APP,常常需要更改代码之后进行调试,使用安卓模拟器每次启动非常缓慢,而且不能保证最终在真机上的效果.所以一般都采用真机进行调试. 搭建真机的调试环境这里就不再赘述了,网上有很多教程.这里主要讲一下本人在nodejs命令行方式下进行run的时候的报错问题,当输入cordova run android的时候,最终APP没有被安装到手机上,查看报错信息,显示如下: 按照错误信息进行判断,应该是adb.exe没有启动起来,于是找到adb.exe双击启动,再次回来run发现依

Visual Studio 2015 命令行编译C/C++程序

在开始菜单下可以找到(我的系统是WIN10):Developer Command Prompt for VS2015.该快捷方式的目标文件为VS2015安装目录下的D:\VS2015\Common7\Tools\VsDevCmd.bat,这里D:\VS2015是我的安装目录. 创建测试代码E:\VS_myproject\命令行\Hello.cpp. #include <stdio.h> #include <iostream> int main(){ std::cout <&l

带你玩转Visual Studio——命令行编译C/C++程序

VS构建工具介绍 我们都知道C/C++源代码要生成可执行的.exe程序,需要经过编译.链接的过程.你在VS工具中只需要选择菜单Build或按一下F5可以编译.链接.运行了,其实IDE帮我隐藏了好多的具体细节. 我先假设VS2010安装在以下目录中: C:\Program Files (x86)\Microsoft Visual Studio 10.0 打开安装目录下的VSDIR\VC\bin可以看到一系列的可执行程序.exe和批处理文件,这些就是VS2010构建.编译.链接时要用到的工具.看一下

iOS系统提供开发环境下命令行编译工具:xcodebuild

iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单来说,Workspace就是一个容器,在该容器中可以存放多个你创建的Xcode Project, 以及其他的项目中需要使用到的文件. 使用Workspace的好处有: 1),扩展项目的可视域,即可以在多个项目之间跳转,重构,一个项目可以使用另一个项目的输出.Workspace会负责各个Project

Windows下命令行编译C文件

今天开始重温C语言程序设计,琢磨了一下用命令行编译C代码. 步骤如下: 1.先用记事本编写如下所示的代码,并另存为hello.cpp,假设其保存路径为 D:CPratice\hello.c. #include <stdio.h>main(){ printf("Hello,word!\n");} (2)配置环境变量(以win7上的VS2010为例) 右键“计算机”—“属性”—“高级系统设置”—“环境变量”. 在下面的系统变量中修改(或添加)三个环境变量 path     值 

windows系统下在dos命令行kill掉被占用的pid (转)

原文出自:http://www.2cto.com/os/201304/203771.html windows系统下在dos命令行kill掉被占用的pid 1.开始-->运行-->cmd 2.命令行输入: netstat -ano I findstr 端口(被占用的端口号) 3.输入: tasklist | findstr 端口(获取步骤2里面的端口,实际就是拿到了pid) 4.taskkill /pid 端口(步骤3里面的端口) /F 轻松搞定. win7里面的这个服务占用80端口,World

Windows系统下Ant自动编译打包并签名Android应用——实践篇

1.背景 项目进行到一定程度了,每次发布前,产品要求打包测试,都需要手动从eclipse中导出签名APK,很是麻烦.于是想起了之前探索过的Ant自动签名打包.查看自己之前写的博客Windows系统下Ant自动编译打包并签名Android应用--探索篇,边动手边复习.但是后面遇到了一大串的问题... 2.问题解决过程 1).libs库中的第三方包 如果项目只是引用了第三方jar包,只要将jar包放入项目libs目录下就可以了,ant编译的时候会自动把第三方jar包加入进去的,没有任何问题. 2).