2011-12-13 1 views
3

Я пытаюсь установить opencv и использовать его с xCode для создания приложения на C++. Я установил его с помощью macports и следую многим учебникам, чтобы сделать это. Я также сделал ссылку в xcode, но есть проблемы, которые некоторые функции не работают. он выдаст ошибку, как неопределенные символы для архитектуры x86_64:OpenCV с ошибкой xcode: Неопределенные символы для архитектуры x86_64:

cv::resize(cv::_InputArray const&, cv::_OutputArray const&, cv::Size_<int>, double, double, int)", 
"cv::floodFill(cv::_OutputArray const&, cv::Point_<int>, cv::Scalar_<double>, cv::Rect_<int>*, cv::Scalar_<double>, cv::Scalar_<double>, int) 

Если я переключаю сборки арки до 32 бит, что дает ту же ошибку с большим количеством функций.

любая идея? Я пытаюсь удалить macports с opencv и установить его с помощью homebrew в 32 битах, но homebrew не может установить его для неизвестной ошибки. так ли библиотека не совместима с 64-битными?

ответ

2

Я получил OpenCV 2.3.0, установленный на моем Mac через мой любимый способ, который загрузить исходный код и скомпилировать его:

tar -xzvf OpenCV-2.3.0.tar.bz2 
cd OpenCV-2.3.0 
mkdir build 
cd build 
cmake ../ 

-- Extracting svn version, please wait... 
-- SVNVERSION: 
-- Detected version of GNU GCC: 42 (402) 
-- checking for module 'libdc1394-2' 
-- package 'libdc1394-2' not found 
-- checking for module 'libdc1394' 
-- package 'libdc1394' not found 
-- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.3") 
-- Found PythonInterp: /usr/bin/python2.6 (found version "2.6.1") 
--  Use NumPy headers from: /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/numpy/core/include 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
ImportError: No module named sphinx 
-- CUDA detected: 4.0 
-- CUDA NVCC target flags: -gencode;arch=compute_11,code=sm_11;-gencode;arch=compute_12,code=sm_12;-gencode;arch=compute_13,code=sm_13;-gencode;arch=compute_20,code=sm_20;-gencode;arch=compute_20,code=sm_21;-gencode;arch=compute_20,code=compute_20 
-- Parsing 'cvconfig.h.cmake' 
-- 
-- General configuration for opencv 2.3.0 ===================================== 
-- 
--  Built as dynamic libs?:  ON 
--  Compiler:     
--  C++ flags (Release):  -m32 -Wall -pthread -march=i386 -O3 -DNDEBUG -fomit-frame-pointer -ffast-math -msse -msse2 -DNDEBUG 
--  C++ flags (Debug):   -m32 -Wall -pthread -march=i386 -g -O0 -DDEBUG -D_DEBUG -ggdb3 
--  Linker flags (Release):  
--  Linker flags (Debug):   
-- 
-- GUI: 
--  Cocoa:      YES 
-- 
-- Media I/O: 
--  ZLib:      TRUE 
--  JPEG:      TRUE 
--  PNG:      TRUE 
--  TIFF:      TRUE 
--  JPEG 2000:     TRUE 
--  OpenEXR:     NO 
--  OpenNI:      FALSE 
-- 
-- Video I/O:     QTKit 
-- 
-- Interfaces: 
--  Python:      ON 
--  Python interpreter:   /usr/bin/python2.6 
--  Python numpy:    YES 
--  Use IPP:     NO 
--  Use TBB:     NO 
--  Use ThreadingFramework:  NO 
--  Use Cuda:     YES 
--  Use Eigen:     NO 
-- 
-- Documentation: 
--  Build Documentation:  NO 
-- 
--  Install path:    /usr/local 
-- 
--  cvconfig.h is in:   /Users/karlphillip/installers/OpenCV-2.3.0/build 
-- ----------------------------------------------------------------- 
-- 
-- Configuring done 
-- Generating done 
-- Build files have been written to: /Users/karlphillip/installers/OpenCV-2.3.0/build 

Тогда:

make 
sudo make install 

И там:

$ pkg-config --cflags --libs opencv 
-I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann 

Примечание: если вам необходимо установить какие-либо зависимости, используйте варево!

И все OpenCV ЛИЭС являются x86_64:

$ file /usr/local/lib/libopencv_highgui.dylib 
/usr/local/lib/libopencv_highgui.dylib: Mach-O 64-bit dynamically linked shared library x86_64 

$ file /usr/local/lib/libopencv_imgproc.dylib 
/usr/local/lib/libopencv_imgproc.dylib: Mach-O 64-bit dynamically linked shared library x86_64 

Я предлагаю вам удалить текущую установку OpenCV и убедитесь, что не осталось ничего в вашей системе, прежде чем загружать и компилировать его с нуля.

+0

@JesseB Чтобы исправить ошибку pkg-config, которую вы видели, прочитайте [этот пост] (http://opencv.willowgarage.com/wiki/CompileOpenCVUsingLinux). Во всяком случае, на этом этапе вы должны попытаться скомпилировать любое приложение OpenCV вручную (на CMD-линии) без использования XCode. Это поможет вам изолировать, если проблема в XCode или если это установленные библиотеки. – karlphillip

Смежные вопросы