如何使用OpenMP编译OpenCV

时间:2015-04-07 14:49:05

标签: python c++ opencv raspberry-pi raspberry-pi2

this SOF post中的用户建议使用WITH_OPENMP标记构建OpenCV以启用(某些)多核支持。我尝试使用OpenMP构建OpenCV-2.4.10,但我无法在Python中导入cv2。

注意:我能够在Python中构建和使用OpenCV-2.4.10。问题是使用WITH_OPENMP标志构建。

我正在opencv-2.4.10/cmake/OpenCVFindLibsPerf.cmake替换# --- OpenMP --- if(NOT HAVE_TBB AND NOT HAVE_CSTRIPES) include (FindOpenMP) # --- since cmake version 2.6.3 if (OPENMP_FOUND) set (HAVE_OPENMP TRUE) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") else() set ( HAVE_OPENMP FALSE) endif() else() set(HAVE_OPENMP 0) endif() 中的第49-58行,如this博客文章所述,其中包含以下内容:

    cmake -D WITH_OPENMP=ON -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON \
    -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON  \
    -D BUILD_EXAMPLES=ON ..

然后在构建之前执行此命令:

WITH_OPENMP=ON

{{1}}是否在这里使用正确的标志?问题在于使用OpenCV-2.4.10吗? (我注意到我引用的博客文章是OpenCV-2.4.6.1)

1 个答案:

答案 0 :(得分:9)

我有一个类似的问题。使用-D WITH_OPENMP = ON的cmake对我来说很好。