gpt4 book ai didi

xcode - 在 Xcode 中链接 OpenCV 时出现体系结构 x86_64 错误的 undefined symbol

转载 作者:太空宇宙 更新时间:2023-11-03 20:39:18 25 4
gpt4 key购买 nike

我在 Xcode 中链接 OpenCV 时遇到问题。我使用 brew 安装了 OpenCV:

brew tap homebrew/science
sudo brew install opencv

我启动了一个新的 Xcode 命令行项目,将 /usr/local/lib/usr/local/include 添加到库和 header 搜索路径。我还将 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 编译方式和我的命令行参数之间到底有什么不同。

有谁知道此错误的原因或知道我可以尝试调查该问题的方法吗?

最佳答案

在 Xcode 中,在您的项目中创建一个新组,右键单击它,选择 Add Files to Project,导航到 /usr/local/lib 文件夹并添加以下基本库:

libopencv_core.dylib, libopencv_ml.dylib, libopencv_video.dylib

在以前版本的 OpenCV 中,库名称可能是:

libcxcore.dylib, libcvaux.dylib, libcv.dylib, libhighgui.dylib, libml.dylib

(根据您在 Mac 上安装 OpenCV 所使用的方法,这些库可能位于其他路径中。)

编辑:

如 OP 所述,如果您在链接阶段包含动态库,则不需要上述行。

选择您的项目,转到Build Settings 选项卡,按c++ 标准库 过滤,并将此参数设置为libstdc++(GNU C++ 标准库).

关于xcode - 在 Xcode 中链接 OpenCV 时出现体系结构 x86_64 错误的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16078512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com