如何用 OpenMP 编译 OpenCV
How to compile OpenCV with OpenMP
中的一位用户建议使用 WITH_OPENMP
标志构建 OpenCV 以启用(某些)多核支持。我曾尝试使用 OpenMP 构建 OpenCV-2.4.10,但我无法在 Python.
中导入 cv2
注意: 我能够在 Python 中构建和使用 OpenCV-2.4.10。问题是使用 WITH_OPENMP
标志构建。
我将按照 this 博客 post 中的建议,将 opencv-2.4.10/cmake/OpenCVFindLibsPerf.cmake
中的第 49-58 行替换为以下内容:
# --- 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()
然后在构建前执行这条命令:
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
是这里使用的正确标志吗?问题出在使用 OpenCV-2.4.10 上吗? (我注意到我引用的博客 post 是关于 OpenCV-2.4.6.1 的)
我有一个类似的问题。带有 -D WITH_OPENMP=ON 的 cmake 对我来说效果很好。
WITH_OPENMP
标志构建 OpenCV 以启用(某些)多核支持。我曾尝试使用 OpenMP 构建 OpenCV-2.4.10,但我无法在 Python.
注意: 我能够在 Python 中构建和使用 OpenCV-2.4.10。问题是使用 WITH_OPENMP
标志构建。
我将按照 this 博客 post 中的建议,将 opencv-2.4.10/cmake/OpenCVFindLibsPerf.cmake
中的第 49-58 行替换为以下内容:
# --- 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()
然后在构建前执行这条命令:
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
是这里使用的正确标志吗?问题出在使用 OpenCV-2.4.10 上吗? (我注意到我引用的博客 post 是关于 OpenCV-2.4.6.1 的)
我有一个类似的问题。带有 -D WITH_OPENMP=ON 的 cmake 对我来说效果很好。