试图在os x上构建opencv的错误

时间:2012-07-27 22:14:09

标签: c++ python opencv

我正在尝试在OS X 10.6.8上构建OpenCV。我下载了源代码,然后创建了一个构建目录,然后运行ccmake进行配置,然后运行cmake。当我运行make时,我得到以下输出:

[laptop] build$ pwd
/Users/jesse.aldridge/OpenCV-2.4.2/build
[laptop] build$ make
...
[ 92%] Built target opencv_perf_photo_pch_dephelp
[ 92%] Built target pch_Generate_opencv_perf_photo
[ 93%] Built target opencv_perf_photo
[ 93%] Built target opencv_test_photo_pch_dephelp
[ 94%] Built target pch_Generate_opencv_test_photo
[ 94%] Built target opencv_test_photo
Linking CXX shared library ../../lib/cv2.so
Undefined symbols for architecture x86_64:
  "_PyGILState_Ensure", referenced from:
      OnMouse(int, int, int, int, void*)in cv2.cpp.o
      OnChange(int, void*)in cv2.cpp.o
      NumpyAllocator::allocate(int, int const*, int, int*&, unsigned char*&, unsigned char*&, unsigned long*)in cv2.cpp.o
      NumpyAllocator::deallocate(int*, unsigned char*, unsigned char*)in cv2.cpp.o
  "_PyGILState_Release", referenced from:
      OnMouse(int, int, int, int, void*)in cv2.cpp.o
      OnChange(int, void*)in cv2.cpp.o
      NumpyAllocator::allocate(int, int const*, int, int*&, unsigned char*&, unsigned char*&, unsigned long*)in cv2.cpp.o
      NumpyAllocator::deallocate(int*, unsigned char*, unsigned char*)in cv2.cpp.o

  ...a bunch of similar errors

我没有很多使用C ++的经验,所以我不确定这个错误究竟是什么。有什么提示吗?

以下是完整输出:https://gist.github.com/3190726

1 个答案:

答案 0 :(得分:1)

进入build目录后,会出现以下命令:

cmake -G "Unix Makefiles" ..
make -j8
sudo make install

这一直对我有用。不要忘记cmake命令末尾的两个点。首先尝试,如果有效,您可以尝试更改ccmake中的选项。你不应该在cmake之前运行ccmake。它只是cmake的交互式前端。如果您使用ccmake生成make文件,则不应运行cmake。只需直接从ccmake进行制作。