OpenCV с ошибкой xcode: неопределенные символы для архитектуры x86_64: - PullRequest
3 голосов
/ 13 декабря 2011

Я пытаюсь установить opencv и использовать его с xCode для создания приложений на C ++.Я установил его, используя macports, и следую многим учебникам, чтобы сделать это.Я также сделал связывание в 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 битами?

1 Ответ

2 голосов
/ 14 декабря 2011

Я установил 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

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

И все библиотеки 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 и убедиться, что в вашей системе ничего не осталось, прежде чем загружать и компилировать ее с нуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...