Virtual Studio 2008环境实现Makefile编译方式

微软的东西都很好用,特别是Virtual Studio 这套开发环境,让程序员最大限度的把精力集中在代码上,而不是花太多的功夫来配置编译环境,了解编译器特性,你只用建个工程写几行代码,然后F5 程序就以调试方式运行了,非常方便。但如果哪一天离开了VS ,我们能否写出同样的程序呢?总是听前辈讲不要依赖于具体环境、不要依赖于具体语言,他们都只是工具,重要的是思想,那么好吧,今天我们就通过Makefile 的方式来体会一下编译的思想。

言归正传,首先说一下需要的工具。打开< 你的安装位置>/Microsoft Visual Studio 9.0/VC/bin 目录,看到一堆可执行程序,只解释我们要用的:

cl.exeC/C++ 编译器,通常在VC 环境中的“编译”选项执行的程序,会生成一堆OBJ 文件

link.exe :连接器,编译后需要连接程序把各个OBJ 文件连接成最终的可执行程序

nmake.exemake 工具,就是它将要执行我们的Makefile 文件

 

好了介绍完所用工具,下面开始。

第一步:搭建环境,将下面代码保存成一个BAT 文件,我的是var.bat ,便于一次性配置好编译环境:

@echo off

set INCLUDE=< 你的安装位置>/Microsoft Visual Studio 9.0/VC/include;< 你的安装位置>/Microsoft SDKs/Windows/v6.0A/Include

set LIB=< 你的安装位置>/Microsoft Visual Studio 9.0/VC/lib;< 你的安装位置>/Microsoft SDKs/Windows/v6.0A/Lib

set PATH=< 你的安装位置>/Microsoft Visual Studio 9.0/VC/bin;< 你的安装位置>/Microsoft Visual Studio 9.0/Common7/IDE;%path%

echo on

 

第二步:环境设置完毕,现在写一个简单的Windows 窗口程序,只有一个文件main.cpp

·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. //! filename: main.cpp   
  2. #include <windows.h>   
  3. int  WINAPI WinMain( HINSTANCE  hInstance,  HINSTANCE  hPrevInstance,  LPSTR  lpCmdLine,  int  nShowCmd)  
  4. {  
  5.     MessageBox(NULL, L"Hello Kent!" , L "Makefile Test" , MB_OK);  
  6.     return (0);  
  7. }  
  8. //! main.cpp end   

第三步:主角Makefile 文件:

#My Makefile

#可执行文件名字

NAME = test

#需要的OBJ文件

OBJ = main.obj

#编译器参数,/c:只编译不连接 /D:定义宏 /Gd:指定使用__cdecl的函数调用规则

CL_FLAGS = /c /D "_UNICODE" /D "UNICODE" /Gd

#连接器参数,/OUT:后面是输出的可执行文件路径和文件名,

#再后面是需要的库文件,因为这里只用了MessageBox()函数所以只用加User32.lib库

#这个要根据自己具体应用修改,或者把VC中连接器命令行里显示的库名全写上以后就省事了

LINK_FLAGS = /OUT:$(NAME).exe User32.lib

#生成可执行文件规则

$(NAME).exe:$(OBJ)

link $(LINK_FLAGS) $(OBJ)

#生成OBJ文件规则

.cpp.obj:

cl $(CL_FLAGS) $<

#清理生成的临时文件

clean:

del *.obj

#Makefile end

第四步:执行Makefile 文件生成程序:

命令行下切换到var.bat 所在目录输入var 执行环境配置

切换到main.cppMakefile 文件所在目录输入nmake 执行Makefile

好了,现在应该是已经生成了一个叫test.exe 的可执行文件,双击运行会出现一个对话框。这里只演示了一个简单的例子,但是后面的路已经有方向了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值