我正在尝试使用cmake来安装opencv,在opencv的说明页面中,我发现了以下示例:
cd ~/opencv
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
据我所知,我应该使用cmake在我创建的新目录中生成Makefile,在这个例子中应该是~/opencv/release,但是我不太理解最后一行,在cmake帮助中,我发现:
cmake -D <var>:<type>=<value> = create a cmake cache entry
是什么意思?尤其是这部分:"<var>:<type>=<value>"
,我不明白为什么示例给出"CMAKE_BUILD_TYPE=RELEASE"
和"CMAKE_INSTALL_PREFIX=/usr/local .."
非常感谢您的帮助!
3条答案
按热度按时间x6yk4ghg1#
来自CMake文档:
当cmake第一次在一个空的构建树中运行时,它会创建一个CMakeCache.txt文件,并使用项目的自定义设置填充该文件。此选项可用于指定一个优先于项目默认值的设置。此选项可根据需要为任意多的缓存条目重复。
:<type>
可被视为可选。xqk2d5yq2#
也许你可以试试:
只需在参数周围使用' ',并且不要在-D和'之间留下任何空白,它就可以工作。
当我用-D参数配置OpenCV时遇到了一些问题。
而且我认为-D选项只是改变了编译和安装pkg的一些默认参数。
正如您所推断的,
CMAKE_BUILD_TYPE=RELEASE
表示您希望构建opencv包的“Release”版本,而CMAKE_INSTALL_PREFIX=/usr/local
表示您希望在使用make install
命令时指定它的安装路径。qvk1mo1f3#
你可能想知道为什么它被称为
-D
。D
代表define/definition。使用-DCMAKE_BUILD_TYPE=RELEASE
在CMake缓存中定义CMAKE_BUILD_TYPE
,值为RELEASE
。来自文档:
创建或更新CMake CACHE条目。
CMakeLists.txt
文件的情况下配置您的版本,例如,在不编辑文件的情况下在调试版本和发布版本之间切换。