申明: 本文翻译自Useful Cmake options about OpenCV installation 可能存在翻译错误,只为自己备忘备查,读者请自行核对。以下内容译自原文。
在许多不同版本和特殊配置的opencv安装上,花了很多时间之后,我有很多建议和经验可以分享。如果你对于“想要什么样的OpenCV”有一些预期的要求,我也有一些常用的配置语句,写在Makefile文件中,都可以给你。
(注意:一下语句可能需要基于Linux或Mac系统的支持)
- 我只想要一个可以运行的example,不关心其他任何事情
你需要把 BUILD_EXAMPLES 标志设置为ON状态
cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_EXAMPLES=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..
- 我想要build的过程更快一些,并且需要可以运行的example和样例app
你需要关闭docs, tests以及其他的开关,但是吧examples开关打开
cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_EXAMPLES=ON -D BUILD_DOCS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_TESTS=OFF -D CMAKE_INSTALL_PREFIX=/usr/local ..
- 我希望我的编译速度快,代码运行也快
You’re going to turn on ALL the optimization flags, in case your system supports multiple of them, and turn off all the performance/test checks.你需要打开所有的优化标志,以防系统支持多个优化标志,并关闭所有性能/测试检查。
cmake -D WITH_TBB=ON -D WITH_OPENMP=ON -D WITH_IPP=ON -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_EXAMPLES=OFF -D WITH_NVCUVID=ON -D WITH_CUDA=ON -D BUILD_DOCS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_TESTS=OFF -D WITH_CSTRIPES=ON -D WITH_OPENCL=ON CMAKE_INSTALL_PREFIX=/usr/local/ ..
(注:对于那些天真地“打开所有多线程!!”的方案,我有一些要说的。因为OpenCV的不同部件允许不同种类的性能加速——一些应用程序可以通过非常简单的改变,实现OpenMP,其他的使用TBB或原生的IPP,所以它是一种混杂开源。因此,我们还是打开所有的开关吧。)
- 我想调试我的(多线程)代码,包括库函数的调用
你需要静态编译,并启用-g -pg编译标志。
cmake [YOUR FAVORITE OPTIMIZATIONS FROM ITEM 3 HERE] -D ENABLE_PROFILING=ON -D CMAKE_BUILD_TYPE=Debug -D BUILD_SHARED_LIBS=OFF -D CMAKE_INSTALL_PREFIX=/usr/local/ ..
- 我想调试我的(单线程)代码,包括库函数的调用
这相当于3和4的结合,但是需要将多线程的标志关闭
cmake -D WITH_TBB=OFF -D WITH_OPENMP=OFF -D WITH_IPP=OFF -D ENABLE_PROFILING=ON -D CMAKE_BUILD_TYPE=Debug -D BUILD_EXAMPLES=OFF -D WITH_NVCUVID=OFF -D WITH_CUDA=OFF -D BUILD_DOCS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_TESTS=OFF -D WITH_CSTRIPES=OFF -D WITH_OPENCL=OFF CMAKE_INSTALL_PREFIX=/usr/local/ ..
- 我不关心任何事情,也不想编译apps或者examples
关闭所有应用程序开关,正常编译。
cmake -D BUILD_EXAMPLES=OFF -D BUILD_opencv_apps=OFF -D BUILD_DOCS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_TESTS=OFF -D CMAKE_INSTALL_PREFIX=/usr/local/ ..