我正在尝试制作一个运行 CMake 的 powershell 脚本。这是我的示例代码(CMAKE_OPTIONS在最后出现):
$CMAKE_OPTIONS = @{
"DBUILD_opencv_java:BOOL" = "OFF"
"DBUILD_opencv_python:BOOL" = "OFF"
"DBUILD_opencv_python2:BOOL" = "OFF"
"DBUILD_opencv_python3:BOOL" = "OFF"
"DBUILD_TESTS:BOOL" = "OFF"
"DBUILD_PERF_TESTS:BOOL" = "OFF"
"DBUILD_DOCS:BOOL" = "OFF"
"DBUILD_EXAMPLES:BOOL" = "OFF"
"DINSTALL_CREATE_DISTRIB:BOOL" = "ON"
}
# ... add something from user input
cmake -G $CMAKE_CONFIG_GENERATOR -DOPENCV_EXTRA_MODULES_PATH=$myRepo/opencv_contrib/modules -DCMAKE_INSTALL_PREFIX=$myRepo/install/$REPO_SOURCE $myRepo/$REPO_SOURCE @CMAKE_OPTIONS
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
命令行参数中的解析错误:-DBUILD_opencv_python:BOOL:OFF
应该是:VAR:type=value
CMake 错误:未提供 cmake 脚本。
CMake 错误:处理参数时出现问题。中止。
似乎foo = bar它没有写参数foo:bar。调用外部程序时如何正确设置参数?或者我是否必须使用带有字符串连接和的旧方法&cmake -p "myargs" $CMAKE_OPTIONS_STRING?
对于外部程序,使用数组,而不是哈希表:
$CMAKE_OPTIONS = @(
"-DBUILD_opencv_java:BOOL=OFF",
"-DBUILD_opencv_python:BOOL=OFF",
"-DBUILD_opencv_python2:BOOL=OFF",
"-DBUILD_opencv_python3:BOOL=OFF",
"-DBUILD_TESTS:BOOL=OFF",
"-DBUILD_PERF_TESTS:BOOL=OFF",
"-DBUILD_DOCS:BOOL=OFF",
"-DBUILD_EXAMPLES:BOOL=OFF",
"-DINSTALL_CREATE_DISTRIB:BOOL=ON"
)
cmake ... @CMAKE_OPTIONS
Run Code Online (Sandbox Code Playgroud)