cmake -D <var>:<type> = <value>参数“-D”是什么意思</value> </type> </var>

时间:2013-11-09 14:24:40

标签: c++ opencv cmake

我正在尝试使用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 .."

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:6)

来自CMake文档:

  
      
  • -D&lt; var&gt;:&lt; type&gt; =&lt; value&gt;:创建一个cmake缓存条目。
      当cmake首次在空构建树中运行时,它会创建一个CMakeCache.txt文件,并使用项目的可自定义设置填充它。此选项可用于指定优先于项目默认值的设置。可以根据需要为多个缓存条目重复该选项。
  •   

:<type>可以被视为可选。

答案 1 :(得分:2)

也许你可以试试:

cd ~/opencv
mkdir release
cd release
cmake -D'CMAKE_BUILD_TYPE=RELEASE' -D'CMAKE_INSTALL_PREFIX=/usr/local'

只需使用''环绕参数,不要在-D和'之间留下任何空白,它可以正常工作。

使用-D参数配置OpenCV时遇到了一些问题。

我认为-D选项只是更改了一些用于编译和安装pkg的默认参数。

正如您所推断的那样,CMAKE_BUILD_TYPE=RELEASE表示您要构建opencv软件包的“Release”版本,CMAKE_INSTALL_PREFIX=/usr/local表示您希望在使用{{1}时指定它的安装路径}命令。