转载请注明来源:http://blog.youkuaiyun.com/caoshiying/article/details/52247858
现在Visual Studio的体积越来越庞大了,微软对VC的支持越来越不好了。然而CodeLite、CodeBlocks等对VC的支持问题太多,今天想到一个自动构建的办法解决这个问题。
一个基于VS2008的自动构建环境:
@echo off
title 自动构建环境
set INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
set LIB=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\lib;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
set BIN=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Packages;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
set PATH=%PATH%;%BIN%
set PATH=%PATH%;%BIN%
@echo on
@cmd /k k.bat
其中k.bat是空批处理文件。目的是双击构建批处理的时候防止批处理自动退出。为给大家演示如何使用,以下新建一个名称为hello_world的Win32控件台工程,只留一个代码文件:map.cpp,代码如下:
#include "stdafx.h"
#include <iostream>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
_tprintf(_T("我的一个HelloWorld。\n"));
system("pause");
return 0;
}
针对此项目编写的自动构建命令如下:
OBJ= main.obj
RES=resource.res
default: test01_dll
test01_dll: $(OBJ) $(RES)
link /nologo /DLL /implib:test01_i.lib /out:test01.dll $(OBJ) $(RES) user32.lib kernel32.lib comctl32.lib ws2_32.lib
.rc.res:
rc /nologo $*.rc
.cpp.obj:
cl /nologo /MDd /W3 /DDEBUG /D_DEBUG /DWIN32 /c $*.cpp /Fo$@
clean:
del /f /s /q *.obj
把以上代码文件另存为makefile.vc,放在代码目录下。打开上面的批处理,运行命令:
nmake /f makefile.vc