У меня проблема, связанная с OpenCV в Xcode. Я установил OpenCV с помощью brew:
brew tap homebrew/science
sudo brew install opencv
Я запустил новый проект командной строки Xcode, добавленный /usr/local/lib
и /usr/local/include
в библиотеку и путь поиска заголовка.
Я также добавил вывод pkg-config --libs opencv
в other linker options
.
Но когда я пытаюсь скомпилировать эту небольшую программу-образец:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
int main(int argc, char *argv[])
{
cv::Mat test;
cv::namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display.
cv::waitKey(0); // Wait for a keystroke in the window
return 0;
}
Я получаю следующую ошибку компоновщика:
Undefined symbols for architecture x86_64:
"cv::namedWindow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
Но я могу скомпилировать программу в командной строке, используя
g++ `pkg-config --cflags --libs opencv` prog.cpp
Итак, я думаю, проблема в том, как настроен Xcode. Но я не могу определить, что точно отличается от способа компиляции Xcode и моего аргумента командной строки.
Кто-нибудь знает причину этой ошибки или имеет представление о том, что я мог бы попытаться исследовать проблему?