在Windows命令行中使用vs2005提供的编译、链接等工具对源程序进行处理

 

O、准备工作

      在Windows平台使用命令行,与其他操作系统如UNIX/LINUX等,主要区别在于命令名称,选项、参数书写习惯,文件路径查找方式

等,而它们工作的基本思路确没什么太大的不同。

 

      设置环境变量

      对于程序员来讲,主要是设置INCLUDE、LIB和PATH这三个环境变量。有一个比较不费力气的方法,就是直接在命令行中执行visual

studio所提供的设置环境变量的脚本,对于C/C++程序设计,设置环境变量的脚本是vcvars.bat。但这种做法有不足之处,每次启动命令

行都需要重新执行这个脚本。

      还有一种做法,就是完全手工地设置它们。这样可以让操作者切实地体会一下开发基于命令行的应用程序,将不仅是编程加上点击一下

鼠标那么简单。

 


     

一、编译、链接

      做为最简单的例子,假设只有一个源文件Main.cpp,它不执行任何动作:

 

  1. /* 
  2.  * Main.cpp 
  3.  * 此代码是为了熟悉在windows平台以命令行方式处理源代码程序的操作 
  4.  * 而写,不具有任何实用价值。这段代码,有点头重脚轻的感觉。 
  5.  */  
  6. #include <windows.h>   
  7.   
  8. int WINAPI WinMain(  
  9.         HINSTANCE hInstance,  
  10.         HINSTANCE hPrevInstance,  
  11.         LPSTR     szCmdLine,  
  12.         int       nCmdShow )  
  13. {  
  14.         return 0;  
  15. }  

      对Main.cpp进行编译、链接生成可执行程序的命令是cl  Main.cpp,这将产生Main.obj和Main.exe,它们分别是编译和链接阶段的产

物。如果要将这两个阶段分开来进行,那么可以分别使用"cl /c Main.cpp" 和"link Main.obj"进行编译和链接,它们最终的效果是一样的。

    

      陷阱:对于习惯了使用可视化编程工具的程序员来讲,如果按照上面所说的来做,可能会发现根本无法工作。这个示例程序没有调用

任何库函数,因此在链接阶段它不需要任何额外的工作。但如果在程序中添加下面这行代码:

  1. MessageBox( NULL, L"Hello windows", L"Hello", MB_OK );  

那么,编译将无法顺利进行,它会提示缺少某些库。这是因为MessageBox不是C或C++标准库里的函数,它是微软提供的。因此要使用

它,必需在链接时明确指定用了哪个库。

      在这种情况下,只进行编译的命令不需要变。进行链接时,则需要指定用到的库的名字,命令为:link Main.obj user32.lib,

它将产生可执行程序Main.exe。也可以直接用cl命令一次性地编译出可执行程序Main.exe:cl Main.cpp user32.lib。

      如果在一开始连环境变量也没有设定,那么,编译和链接的命令还需要做进一步的改动,那就是在命令中指定使用到的头文件、库文件所

在的路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值