本文主要记录了简单的Batch怎么写,和VisualStudio、MSBuild的用法相关记录。
sln文件和vcxproj(之前是vcproj)文件,sln包括了vcxproj文件,一个sln可以包括多个vcxproj文件,比如一个工程文件和一个测试文件(测试文件中增加reference用来说明依赖关系),以及依赖库等等。
比如在properties下面的编译配置比如$
,在配置中可以点击Macro
查看对应的值。
_tmain
是什么 是MS定义的main函数,用来预处理宽字符的入口函数,对Unicode字符集和ANSI字符集自动转换。如果源文件的字符集是unicode,_tmain
会被替换为wmain
,否则就是main。
目标:实现在命令行下执行sln文件或project文件的编译。
目的:可以看到具体的build信息,方便脚本执行和问题排查。
步骤:
用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文件。
用MSBuild执行编译,并指定平台。
MSBuild.exe /nologo /t:Build /p:Configuration=Release /p:Platform=Win32 test.vcxproj
其中,/t
/p
和 -t
-p
等价。Configuration和Platform用来指定版本。nologo
表示不展示开始的版权信息。
参数:%0
是文件名本身,%1
第一个参数。
COPY SRC DST
EXIT
if condition()else()
字符串"%1"=="STR"