命令行调用 CMake 与 MSBuild
CMake
一个 OpenCV 的例子
1 |
|
%~dp0
当前 batch 文件的路径。
cmake -B build
配置阶段,会在当前目录下生成 build
文件夹,并在其中生成一系列 cmake 缓存。-D
之类的配置正是在这个阶段进行的,不过由于缓存的机制,只有在第一次 -B
的时候 -D
等配置才会生效。
任何时候都可以通过删除 build/CMakeCache.txt
或整个 build
文件夹来删除缓存,以便重新运行 -B
。
CMAKE_CONFIGURATION_TYPES
指定多配置生成器(如 VS,XCode,Ninja)上可用的构建类型,常见有 Debug
, Release
, RelWithDebInfo
和 MinSizeRel
。
相对于用于指定单配置生成器的构建类型的 CMAKE_BUILD_TYPE
。
cmake --build build
会使用 build 目录下的 CMake 缓存编译目标文件。
–target
用于指定要编译的目标,默认则编译所有目标。
–config
用于指定多配置生成器要编译的构建类型,对于单配置生成器会忽略该选项。
MSBuild
MSBuild 命令行参考
常用的 MSBuild 项目属性
在 windows 中调用 MSBuild 编译现成的 .sln。
1 |
|
vswhere
vswhere Find MSBuild
一个用于查找 Visual Studio 相关路径的软件,当安装 2017 或更高的 VS 版本时,vswhere 会被安装到 %ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe
。
-p
p:name
=value
,设置或重写指定项目级属性,多个属性之间用分号或逗号分隔。
PS: 我尝试过通过 -p:RuntimeLibrary=MultiThreaded
重写 /MT 选项,没有生效,网上信息也比较少。
https://stackoverflow.com/questions/38109726/how-to-set-runtime-library-mt-md-configuration-in-msbuild