前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VS2010工程的自动编译

VS2010工程的自动编译

作者头像
用户3519280
发布2023-07-08 11:19:26
2450
发布2023-07-08 11:19:26
举报
文章被收录于专栏:c++ 学习分享

代码如下(示例): 下面这个bat文件没有测试过,网上抄作业抄的

代码语言:javascript
复制
//添加头文件和库
@echo off
set Msbuild=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\MSBuild.exe
set ObjCurrent=D:\API开发环境\02ARXDBGplus\ArxDbg.verproj
set arxpath =D:\API开发环境\ARXDBG2008\Release\ArxComLib\Win32\ArxComLib.arx
set Arrpath32=D:work\hui zuhao\Dwgl ain\CommonLib\Arx
Set Arrpath64=D:work\huizuhao\Dwg[ain\CommonLib\Ary05mLib\ArxComLib\x64\ArxConLib.arx
setlocal enabledelayedexpansion
for /l %%i in (0,1,0) do (
echo !ObjCurrent%%i!
del %ArxPath32%
	%Msbuild% !ObjCurrent%%i!/t:build /p:Configuration-Release /p:Platform=Win32 /p:PlatformToolset=v80 /p:PrecompiledHeader=NotUsing /n
if not exist %ArxPath32%
	(%Msbuild% !ObjCurrent%%i! /t:build /p:Configuration=Release /p:Platform=Win32 /p:PlatformToolset=v80 /p:PrecompiledHeader=NotUsing /n
if not exist %ArxPath32%
	(%Msbuild% !ObjCurrent%%i! /t:clean
	%Msbuild% !%ObjCurrent%%i% /t:rebuild/ p:Configuration=Release /p:Platform=Win32 /p:PlatformToolset=v80 /p:PrecompiledHeader=NotUsing /n)
if not exlst %ArxPath32%
(echo v80
Pause)
)
del %ArxPath32%

%Msbuild% !ObjCurrent%%i!/t:build /p:Configuration-Release /p:Platform=Win32 /p:PlatformToolset=v90 /p:PrecompiledHeader=NotUsing /n
if not exist %ArxPath32%
	(%Msbuild% !ObjCurrent%%i! /t:build /p:Configuration=Release /p:Platform=Win32 /p:PlatformToolset=v90 /p:PrecompiledHeader=NotUsing /n
if not exist %ArxPath32%
	(%Msbuild% !ObjCurrent%%i! /t:clean
	%Msbuild% !%ObjCurrent%%i% /t:rebuild/ p:Configuration=Release /p:Platform=Win32 /p:PlatformToolset=v90 /p:PrecompiledHeader=NotUsing /n)
if not exlst %ArxPath32%
(echo v90
Pause)
)

del %ArxPath64%
%Msbuild% !ObjCurrent%%i!/t:build /p:Configuration-Release /p:Platform=x64 /p:PlatformToolset=v90 /p:PrecompiledHeader=NotUsing /n
if not exist %ArxPath32%
	(%Msbuild% !ObjCurrent%%i! /t:build /p:Configuration=Release /p:Platform=x64 /p:PlatformToolset=v90 /p:PrecompiledHeader=NotUsing /n
if not exist %ArxPath32%
	(%Msbuild% !ObjCurrent%%i! /t:clean
	%Msbuild% !%ObjCurrent%%i% /t:rebuild/ p:Configuration=Release /p:Platform=x64 /p:PlatformToolset=v90 /p:PrecompiledHeader=NotUsing /n)
if not exlst %ArxPath32%
(echo v90
Pause)
)
)

看过前面的Jenkins+Github环境的配置相信大家已经对Jenkins有了一定的熟练程度,也大概知道怎么对vs项目进行自动化编译,这篇博文主要是对一些细节进行补充,后面主要就是Jenkins插件的使用和脚本的问题了,比如Ant的XML脚本,VS项目的批处理脚本,给大家建议是尽量要用脚本来控制构建的过程,在Jenkins里面敲大量的命令行不是好的方法。 我的版本管理基本上都是在GitHub上进行的,所以如果你还没有一个github的账号就赶紧去申请一个吧!有了账号首先要做的就是在要学会使用github,基本的使用方法网上有很多教程,wiki上肯定是有的,github给新手很多好的指导,现在你要新建一个repository

代码语言:javascript
复制
然后使用git上传你的vs项目,下面就按照上一篇博文里讲的那样配置一下Jenkins的环境就可以了。
点击“立即构建”,Jenkins就自动从Github上clone你的vs项目到你本地的Jenkins的目录的workspace下,所以你的命令行要对这个目录进行操作。

vs项目的构建是比较简单的,你只需要在目录下进行你需要的命令行操作
MSVC提供了很多的命令行构建工具,除了devenv.com,还有msbuild,PSExec,MSTest等,可以根据自己的需要去网上查阅,Jenkins一般都有相应的插件支持,比如Jenkins MSBuild plugin, Jenkins MSTest plugin这两个插件,能够帮助你完成vs项目的持续集成。大部分的目录最好写成环境变量以便于用脚本进行操作。
在windows的批处理环境下,Jenkins判断项目构建的成功与否是根据ERRORLEVEL是否为0,非0则构建失败,你可以通过对ERRORLEVEL的控制,对构建结果进行控制。下面是我的vs项目构建的脚本,是用批处理写的,希望对大家有一定的参考意义。    
代码语言:javascript
复制
set qtpproj=%cd%
cd ..\..\..\..\

"%VS100COMNTOOLS%..\IDE\devenv.com" "%cd%\cocos2d-win32.vc2010.sln" /Build "Debug|Win32"

set CC_TEST_BIN=TestCpp.exe

set CC_TEST_RES=%cd%\samples\TestCpp\Resources\*.*
set CC_HELLOWORLD_RES=%cd%\samples\HelloCpp\Resources\*.*
set CC_HELLOLUA_RES=%cd%\samples\HelloLua\Resources\*.*
set CC_TESTJS_RES=%cd%\samples\TestJavascript\Resources\*.*

cd Debug.win32

xcopy  /E /Y /Q "%CC_TEST_RES%" .
xcopy  /E /Y /Q "%CC_HELLOWORLD_RES%" .
xcopy  /E /Y /Q "%CC_HELLOLUA_RES%" .
xcopy  /E /Y /Q "%CC_TESTJS_RES%" .

cd ..
cd %qtpproj%\qtp_win32
cscript qtrunner.vbs

pause
代码语言:javascript
复制
今天就讲到这里吧,后面考虑到Jenkins配置的细节比较烦琐,会写一篇关于Jenkins配置细节的文章,希望能帮助大家快速解决可能会遇到的小问题
代码语言:javascript
复制
//数据

测试代码

代码语言:javascript
复制
//如果使用当前数据库,一定要保存文件否则会出错,
//当前数据库有自动保存操作,即使不操作,如果不保存,也会出错。

总结

提示:这里对文章进行总结: 例如:以上就是今天要讲的内容,本文仅仅简单介绍了的函数和方法。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 总结
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档