Windows开发工具记录:Batch、VisualStudio、MSBuild

VisualStudio

MSBuild

Windows开发工具记录:Batch、VisualStudio、MSBuild

本文主要记录了简单的Batch怎么写,和VisualStudio、MSBuild的用法相关记录。

VisualStudio

sln文件和vcxproj(之前是vcproj)文件,sln包括了vcxproj文件,一个sln可以包括多个vcxproj文件,比如一个工程文件和一个测试文件(测试文件中增加reference用来说明依赖关系),以及依赖库等等。

配置中的宏

比如在properties下面的编译配置比如$,在配置中可以点击Macro查看对应的值。

_tmain是什么

是MS定义的main函数,用来预处理宽字符的入口函数,对Unicode字符集和ANSI字符集自动转换。如果源文件的字符集是unicode,_tmain会被替换为wmain,否则就是main。

MSBuild

使用CMakeLists生成sln文件,并用MSBuild在命令行编译

目标:实现在命令行下执行sln文件或project文件的编译。
目的:可以看到具体的build信息,方便脚本执行和问题排查。

步骤:

  1. 用CMakeLists.txt文件生成sln文件。假如我们有CMakeLists.txt文件如下:

    project(TEST)
    set(SRC_LIST test.cpp)
    add_executable(test ${SRC_LIST})
    
    cmake . -G "Visual Studio 16 2019" -A "Win32"
    

    其中,.表示包含CMakeLists.txt文件的源文件目录,-G表示Generator Name,可以使用cmake --help查看具体的Name列表。-A用来指定平台类型。以上的指令将生成sln和vcxproj文件。

  2. 用MSBuild执行编译,并指定平台。

    MSBuild.exe /nologo /t:Build /p:Configuration=Release /p:Platform=Win32 test.vcxproj
    

    其中,/t /p-t -p等价。Configuration和Platform用来指定版本。nologo 表示不展示开始的版权信息。

Batch

参数:%0是文件名本身,%1第一个参数。

COPY SRC DST

EXIT

if condition()else()

字符串"%1"=="STR"

Ref

MSBuild command-line reference

Windows开发工具记录:Batch、VisualStudio、MSBuild

VisualStudio

MSBuild