Скомпилируйте OpenCV (2.3.1+) для OS X Lion / Mountain Lion с Xcode

Может кто-нибудь предоставить мне подробное руководство, как скомпилировать OpenCV 2.3.1 на OS X Lion с Xcode?

Я схожу с ума по этому поводу... Я получил исходный код, использовал cmake для создания шаблона Xcode и попытался создать его, но он терпит неудачу с примерно 200 ошибками.

Заранее спасибо, Дом

РЕШЕНИЕ в моем ответном посте.

5 ответов

Решение

Подробное руководство о том, как запустить OpenCV 2.3.1 под OS X Lion (10.7.2) с Xcode 4.2.1 с использованием MacPorts

РЕДАКТИРОВАТЬ 06/06/2012: Это также работает для OpenCV 2.4.1. Просто убедитесь, что вы получили последнюю версию Xcode и установили "Инструменты командной строки" (Xcode -> Настройки -> Загрузки -> Инструменты командной строки).

РЕДАКТИРОВАТЬ 15/08/2012: все протестировано с Mountain Lion и текущими версиями Xcode и OpenCV... это работает:) И вам не нужно использовать компилятор LLVM.

РЕДАКТИРОВАТЬ 16/10/204: За последний год я отказался от MacPorts и начал использовать brew, который лучше подходит для моих целей.

Руководство по приготовлению

1.) Получить текущую версию Brew здесь.

2.) Убедитесь, что варево готово к нам

brew doctor && brew update 

3.) Установите OpenCV (по состоянию на 17/20/2014 v2.4.9)

brew install opencv

4.) Запустите Xcode (по состоянию на 17/20/2014 v6.0.1) и откройте / создайте свой проект

5.) Выберите цель, перейдите в раздел "Общие" и нажмите кнопку "+" в "Связанных фреймворках и библиотеках".

5.1.) Нажмите "Добавить других", нажмите "/", перейдите в "/usr/local/lib" и добавьте любой libopencv_**. Dy lib, который вам нужен.

6.) Теперь добавьте "/ usr / local / include" в "Пути поиска заголовка" в "Настройках сборки" (цель все еще выбрана)

7.) Наконец, убедитесь, что вы включили OpenCV в ваши файлы.mm.

Руководство по MacPorts (возможно, устаревшее)

1.) Получить текущую версию MacPorts можно здесь. Не забудьте добавить "/opt/local/(s)bin" в вашу среду PATH

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

2.) Держите свой MacPorts актуальным:

sudo port -v selfupdate

3.) Установите OpenCV 2.3.1 (сборка с llvm-gcc)

sudo port install opencv configure.compiler=llvm-gcc-4.2

4.) Запустите Xcode и создайте свой проект

5.) Выберите цель, перейдите к "Сводке" и нажмите кнопку "+"- в "Связанных фреймворках и библиотеках"

5.1.) Нажмите "Добавить другое", нажмите "/" и перейдите в "/ opt / local / lib"

5.2.) Добавьте любую библиотеку libopencv_**. Dy lib

6.) Теперь добавьте "/ opt / local / include /" в "Пути поиска заголовка" в "Настройках сборки" (цель все еще выбрана)

7.) Наконец, убедитесь, что в начале вашего файла.pch есть следующие строки:

#ifdef __cplusplus
  #import "opencv2/opencv.hpp"
#endif

В противном случае вы получите несколько неприятных ошибок:

"Non-const static data member must be initialized out of line"
"Statement expression not allowed at file scope"

Это оно! Надеюсь, поможет:)

Благодаря Vachidrewer, я смог запустить OpenCv на Mavericks. Я делал вещи в несколько ином порядке, так что вот мои заметки.

  1. Если он не установлен, установите Macports и добавьте его в путь. (У меня уже было установлено)

  2. Используйте Macports для обновления себя из командной строки $ sudo port -v selfupdate

  3. Используйте Macports для установки opencv и его зависимостей из командной строки. $ sudo port install opencv

  4. Если он не установлен, установите xCode. (У меня уже было установлено)

  5. Используйте xCode для создания проекта командной строки C++.

  6. Используйте xCode, чтобы убедиться, что созданная ею простая программа hello world C++ работает, запустив ее в xCode IDE.

  7. Измените файл main.cpp, созданный xCode из примера hello world, на простой пример opencv от Vachidrewer.

  8. Обратите внимание, что редактор xCode сообщает, что он НЕ может найти заголовочный файл заголовка opencv.

  9. Добавьте / opt / local / include / в путь поиска проекта и обратите внимание, что ошибки редактора исчезают.

  10. Попробуйте запустить программу в xCode IDE и заметьте, что она сообщает, что не может найти библиотеки opencv.

  11. Добавьте группу с именем opencvfrqmework в проект и добавьте в группу /opt/local/lib/libopencv_core.dylib и /opt/local/lib/livopencv_highgui.dylib.

  12. Используйте xCode IDE для запуска проекта и обратите внимание, что всплывает окно, половина которого темнее другой половины.

Вы пробовали просто собрать его с использованием стандартных файлов Makefile UNIX?

Следуйте этому руководству и посмотрите, поможет ли это. Если вы уже загрузили исходный код, вам, вероятно, не нужно делать svn checkout, который предлагается. Вероятно, вы можете начать с использования CMake для сборки в разделе 2.

Надеюсь, это поможет.

С небольшими изменениями в @moosgummi ответьте ниже, шаги, работающие с Xcode 4.6 на Mac OSX 10.7, код TEST включен ниже.

Установка OpenCV:

Получить текущую версию MacPorts можно здесь.

Не забудьте добавить "/opt/local/(s)bin" в вашу среду PATH

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Держите свой MacPorts актуальным:

sudo port -v selfupdate

Установите OpenCV с портами Mac

sudo port install opencv

Настройка Xcode для использования OpenCV

  1. Создайте новый проект XCode, используя утилиту командной строки / стандартный инструмент. Назовите его и выберите C++

  2. Выберите Проект -> Изменить настройки проекта. Выберите вкладку Build. Установить конфигурацию для всех конфигураций

  3. В разделе Архитектуры дважды щелкните Действительные архитектуры и удалите все архитектуры PPC, если таковые имеются.

  4. Компилятор для C/C++/Objective-C > Компилятор Apple LLVM 4.2 Язык " > " Стандартная библиотека C++ "и выберите"libstdC++ (Стандартная библиотека GNU C++)"

  5. В разделе "Пути поиска" установите "Пути поиска заголовка" в / opt / local / include /
    Пожалуйста, выберите нерекурсивный как вариант при добавлении этого пути поиска

  6. Закройте окно информации о проекте

  7. Выберите Project -> New Group и создайте группу под названием OpenCV Frameworks. Выбрав новую группу, выберите Project -> Add files to 'Your Project Name'.

  8. Нажмите клавишу "/", чтобы получить запрос "Перейти к папке". Введите / opt / local / lib Выберите libopencv_core.dylib, libopencv_highgui.dylib (может потребоваться добавить другие библиотечные файлы из этой папки, чтобы запустить другой код.)

  9. Снимите флажок Копировать элементы... и нажмите Добавить

ТЕСТОВЫЙ КОД

Скопируйте этот код в ваш файл main.cpp. Это должно открыть небольшое окно, которое наполовину затенено.

#include <iostream>
#include <opencv2/opencv.hpp>

int main(int argc, char *argv[])
{
    // Open the file.

    IplImage *img = cvCreateImage( cvSize(100,200), IPL_DEPTH_8U, 3); //if (!img) {

    //    printf("Error: Couldn't open the image file.\n");
    //    return 1;
    //}

    // Display the image.
    cvNamedWindow("Image:", CV_WINDOW_AUTOSIZE);
    cvShowImage("Image:", img);

    // Wait for the user to press a key in the GUI window.
    cvWaitKey(0);
    // Free the resources.
    cvDestroyWindow("Image:");
    cvReleaseImage(&img);

    return 0;
}

После того, как я получил много ошибок (ошибки сегментации и т. Д.), Я наконец-то начал работать. Вот учебник:

http://www.guidefreitas.com/installing-opencv-2-4-2-on-mac-osx-mountain-lion-with-python-support

Другие вопросы по тегам