1. 问题描述
本人的问题是在执行cmake 的时候出现以下报错:
下图是报错行号所对应的位置:
2. 分析原因
网上搜了一顿,总结如下:
1、 “STREQUAL” 参数不匹配
2、if-else-endif 语法格式问题
结合自己的文件分析:
因为我在cmake文件中用到了变量
${CMAKE_BUILD_TYPE}
这个变量在执行cmake 命令的时候并没有被指定,所以执行到这句话的时候就出现了报错
if(${CMAKE_BUILD_TYPE} STREQUAL “Debug”)
3. 解决方案
加上 -DCMAKE_BUILD_TYPE=Debug 即可
同样的,如果要制定install路径,也可以给 CMAKE_INSTALL_PREFIX 变量进行赋值,如下
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="../install_dir"
-G可以制定cmake编译器, WIN10SDK_PATH 表示windows10sdk路径,也可以自己指定
cmake .. -G "Visual Studio 16 2019" -DCMAKE_INSTALL_PREFIX="../install_dir" -DCMAKE_BUILD_TYPE=Debug -DWIN10SDK_PATH="C:/Program Files (x86)/Windows Kits/10/Include/10.0.19041.0"
PS:补充一下编译的命令
cmake --build . --target install --config Debug