我在 Xcode 中链接 OpenCV 时遇到问题。我使用 brew 安装了 OpenCV:
brew tap homebrew/science
sudo brew install opencv
我开始了一个新的 Xcode 命令行项目,添加/usr/local/lib
到/usr/local/include
库和标头搜索路径中。我还添加了pkg-config --libs opencv
to的输出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 的编译方式和我的命令行参数之间到底有什么不同。
有谁知道这个错误的原因或知道我可以尝试调查这个问题吗?