Компилировать OpenCV (2.3.1+) для OS X Lion/Mountain Lion с Xcode

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

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

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

РЕШЕНИЕ в моем ответе.

Ответ 1

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

EDIT 08/06/2012: Это также работает для OpenCV 2.4.1. Просто убедитесь, что вы получили последнюю версию Xcode и установили "Инструменты командной строки" (Xcode → Настройки → Загрузки → Инструменты командной строки).

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

EDIT 16/10/204: За последний год я отказался от MacPorts и начал использовать brew, который работает лучше для моих целей.

Brew руководство

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

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

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 _ **. dylib вам нужно

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 up-2-date:

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 _ **. dylib вам нужно

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"

Что это! Надеюсь, что это поможет:)

Ответ 2

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

  • Если он не установлен, установите Macports и добавьте его в путь. (Я уже установил его)

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

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

  • Если он не установлен, установите xCode. (Я уже установил его)

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

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

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

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

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

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

  • Добавьте в проект группу opencvfrqmework и добавьте в группу /opt/local/lib/libopencv _core.dylib и/opt/local/lib/livopencv_highgui.dylib.

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

Ответ 3

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

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

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

Ответ 4

С небольшими изменениями в @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 up-2-date:

sudo port -v selfupdate

Установить OpenCV с портами mac

sudo port install opencv

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

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

  • Выберите "Проект" → "Изменить настройки проекта". Перейдите на вкладку "Сборка". Настройка конфигурации для всех конфигураций

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

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

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

  • Закрыть окно "Информация о проекте"

  • Выберите Project → New Group и создайте группу под названием OpenCV Frameworks Если выбрана новая группа, выберите "Проект → Добавить файлы в" Имя вашего проекта "

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

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

ИСПЫТАТЕЛЬНЫЙ КОД

Скопируйте этот код в файл 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;
}