Если ваш «make back-end» - это Cmake, вы должны придерживаться его использования. Локальные изменения конфигурации в Xcode могут «тайно» перезаписываться при повторном запуске cmake (что, например, происходит после внесения в него изменений), создавая странные ошибки сборки и заставляя вас помнить все сделанные вручную изменения вручную.
Ваша проблема заключается в том, что сгенерированный проект, похоже, не знает, где искать opencv.
Предполагая, что вы установили OpenCV с помощью MacPorts вы должны добавить строку говоря
link_directories(/opt/local/lib)
к вашему CMakeLists.txt. (Если он был установлен с помощью отвара или скомпилировано вручную просто заменить /opt/local/lib
для /usr/local/lib
или путь к скомпилированным библиотекам)
Кроме того, убедитесь, чтобы связать против opencv_calib3d
вместо opencv_calib3d.2.4.3
(если у вас есть очень конкретная причина для обхода этого , но это обычно означает, что что-то еще странно в настройке :))
Заключительный указатель, о котором вы, возможно, уже знаете: поскольку вы уже используете Cmake, вы должны добавить библиотеки для ссылки на использование TARGET_LINK_LIBRARIES (...) в Cmake, а не вручную добавлять их в Xcode (ссылаясь на мой предыдущий аргумент).
У вас есть что-то вроде «пути библиотеки» в архитектуре, которую вы разрабатываете? http://stackoverflow.com/questions/9412296/ld-library-path-the-shared-lib-path-in-linux Подписывает ли ваш компилятор флаг -L для gcc/g ++? http://linux.die.net/man/1/g++ – Antonio
Спасибо за ссылки. У меня есть мои Архитектуры как «Native Architecture of Build Machine», а мой компилятор - по умолчанию. Если я добавлю -L в другие флагов C++, то получаю ту же ошибку. -L не является вариантом под моей C++-библиотекой, но могу ли я добавить его и изменить компилятор по умолчанию? Извините, я новичок в этом. –
Я не понимаю, но вам нужно использовать '-L directory_where_your_library_is' – Antonio