在Windows命令行中使用vs2005提供的编译、链接等工具对源程序进行处理
2012-01-06 11:59
459 查看
O、准备工作
在Windows平台使用命令行,与其他操作系统如UNIX/LINUX等,主要区别在于命令名称,选项、参数书写习惯,文件路径查找方式
等,而它们工作的基本思路确没什么太大的不同。
设置环境变量
对于程序员来讲,主要是设置INCLUDE、LIB和PATH这三个环境变量。有一个比较不费力气的方法,就是直接在命令行中执行visual
studio所提供的设置环境变量的脚本,对于C/C++程序设计,设置环境变量的脚本是vcvars.bat。但这种做法有不足之处,每次启动命令
行都需要重新执行这个脚本。
还有一种做法,就是完全手工地设置它们。这样可以让操作者切实地体会一下开发基于命令行的应用程序,将不仅是编程加上点击一下
鼠标那么简单。
一、编译、链接
做为最简单的例子,假设只有一个源文件Main.cpp,它不执行任何动作:
view plaincopy to clipboardprint?
/*
* Main.cpp
* 此代码是为了熟悉在windows平台以命令行方式处理源代码程序的操作
* 而写,不具有任何实用价值。这段代码,有点头重脚轻的感觉。
*/
#include <windows.h>
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR szCmdLine,
int nCmdShow )
{
return 0;
}
view plaincopy to clipboardprint? MessageBox( NULL, L"Hello windows", L"Hello", MB_OK ); 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。
如果在一开始连环境变量也没有设定,那么,编译和链接的命令还需要做进一步的改动,那就是在命令中指定使用到的头文件、库文件所
在的路径。
相关文章推荐
- 在windows环境下,使用Eclipse和gcc-Linaro工具链,对BeagleBone进行交叉编译和远程部署
- java学习总结(16.05.08)在windows下使用cmd命令行对java文件进行编译和执行
- Windows 编程,程序编译使用的命令行工具。
- cmake工具使用简明教程(基于命令行和gui,编译到windows和linux双平台)
- 在windows环境下,使用Eclipse和gcc-Linaro工具链,对BeagleBone进行交叉编译和远程部署
- 在windows下使用cmd命令行对java文件进行编译和执行
- 使用 getopt() 、getopt_long()、getopt_long_only()进行命令行处理
- windows命令行中java和javac、javap使用详解(java编译命令)
- 在 NASA 使用开源工具进行图像处理
- Linux系统平台下关于GCC编译及使用的方法(-Werror,它要求GCC将所有的警告当成错误进行处理 )
- Windows环境下使用VS2005编译OpenSSL
- 在VS2005 环境下面使用.NET Framework 1.1 进行编译
- 使用 getopt() 进行命令行处理
- 使用 getopt() 进行命令行处理,optind,optarg,optopt
- 使用Visual stuido 2005 的 命令行 工具 CL 编译生成程序
- VS2005 在编译或者链接的时候报文件找不到时如何处理
- 使用 VS2005 编译 directshow sample 时链接错误
- 使用 getopt() 进行命令行处理
- 使用DDK提供的build进行编译驱动一点总结
- 使用 getopt() 进行命令行处理