【PE】通过批处理脚本命令行编译VS工程

来源:互联网 发布:广州趣丸网络 编辑:程序博客网 时间:2024/06/08 00:26

###Date: 2017/9/25

          Visual Studio IDE本身具有编译链接以及调试分析的功能,是一款非常强大的代码调试和阅读的软件。但通常windows平台下的库的生成采用批处理脚本的方式来编译VS工程会更加的方便,而且不需要打开VS软件。

        下面以Mpeg4的开源实现Xvid的工程libxvidcore.sln为例,整理一下通过批处理脚本命令行编译VS工程的通用方法。

一、命令行编译通用模板

@rem 说明:Windows平台命令行编译脚本@rem 作用:通过批处理脚本命令行编译VS工程@echo off@rem usage: build.bat Release/Debug Win32/x64 @rem set build_config="Debug|Win32"@rem set build_config="Release|Win32"@rem set build_config=$ALL@rem 当前环境设置只在本文件中有效@setlocal@rem "命令行输入参数"set build=%1set platform=%2set build_config="%build%|%platform%"@echo %date% %time%  >build.log@rem 当前脚本所在路径@echo "编译目录..."@echo %~dp0 set build_root = %~dp0@rem 各种文件和路径set VCVARS="%VS120COMNTOOLS%../../VC/vcvarsall.bat"set DEVENV="%VS120COMNTOOLS%../IDE/devenv.exe"@rem 设置解决方案路径set SOlUTION="%~dp0libxvidcore.sln"@echo "解决方案..."@echo %SOLUTION%@rem 检查文件路径配置if not exist %VCVARS% echo "VCVARS不存在!" &goto endif not exist %DEVENV% echo "DEVENV不存在!" &goto endif not exist %SOlUTION% echo "SOlUTION不存在!" &goto end@rem 删除输出文件if exist build.log del build.log@rem 编译环境配置@echo "环境配置..."if %platform%=="Win32"  (     echo "Windows 32位环境配置..."     call %VCVARS% x86)   if %platform%=="x64" ( echo "Windows 64位环境配置..." call %VCVARS% x86_amd64)@echo build_config:%build_config%,please waiting@echo "开始编译" %DEVENV% %SOlUTION% /rebuild %build_config% /out build.logrem notepad build.logcopy %~dp0bin\xvidcore.dll  %~dp0..\lib\copy %~dp0bin\xvidcore.lib  %~dp0..\lib\:end@rem pause@endlocal

这里主要涉及到了devenv.exe命令的使用以及windows编译环境的设置(详见http://blog.csdn.net/soaringlee_fighting/article/details/78043905)。

二、Devenv.exe的用法

devenv[solutionfile | projectfile | anyfile.ext] [switches]

devenv 的第一个参数通常是一个解决方案文件(.sln)或项目文件(.vcproj)。如果您希望在编辑器中自动打开文件,也可以使用任何其他文件作为第一个参数。当您输入项目文件时,IDE会在项目文件的父目录中查找与该项目文件具有相同基名称的 .sln 文件。如果不存在这样的 .sln 文件,IDE 将查找引用该项目的单个 .sln 文件。如果不存在这样的单个.sln 文件,则 IDE 将创建一个具有默认 .sln 文件名且未保存的解决方案,其基名称与项目文件的基名称相同。

命令行编译:

devenv solutionfile.sln /buildsolutionconfig [ /project projectnameorfile [ /projectconfig name ] ]

devenv可用的命令行开关:

/Build

使用指定的解决方案配置生成解决方案或

项目。例如“Debug”。如果可能存在多个平台,

则配置名称必须用引号括起来

并且包含平台名称。例如“Debug|Win32”。

/Clean

删除生成结果。

/Command

启动 IDE 并执行该命令。

/Deploy

生成并部署指定的生成配置。

/Edit

在此应用程序的运行实例中打开

指定文件。如果没有正在运行的实例,

则启动一个具有简化窗口布局的新实例。

/LCID

设置 IDE 中用于用户界面的默认语言。

/Log

将 IDE 活动记录到指定的文件以用于故障排除。

/NoVSIP

禁用用于 VSIP 测试的 VSIP 开发人员许可证密钥。

/Out

将生成日志追加到指定的文件中。

/Project

指定生成、清理或部署的项目。

必须和 /Build、/Rebuild、/Clean 或 /Deploy 一起使用。

/ProjectConfig

重写解决方案

配置中指定的项目配置。例如“Debug”。如果可能存在

多个平台,则配置名称必须用引号括起来

并包含平台名称。例如“Debug|Win32”。

必须和 /Project 一起使用。

/Rebuild

先清理,然后使用指定配置生成

解决方案或项目。

/ResetAddin

移除与特定外接程序关联的命令和命令用户界面。

/ResetSettings

恢复 IDE 的默认设置,还可以重置为

指定的 VSSettings 文件。

/ResetSkipPkgs

清除所有添加到 VSPackages 的 SkipLoading 标记。

/Run

编译并运行指定的解决方案。

/RunExit

编译并运行指定的解决方案然后关闭 IDE。

/SafeMode

以安全模式启动 IDE,加载最少数量的窗口。

/Upgrade

升级项目或解决方案以及其中的所有项目。

并相应地创建这些文件的备份。有关备份

过程的更多信息,请参见

“Visual Studio 转换向导”上的帮助。


参考:

http://blog.csdn.net/listener51/article/details/76039146