OpenCV未解析符号-名称损坏不匹配-xcode

OpenCV未解析符号-名称损坏不匹配-xcode,xcode,opencv,name-mangling,Xcode,Opencv,Name Mangling,我在MacBookRunning Lion上本地构建了i386风格的OpenCV,使用 cmake -G "Unix Makefiles" -D CMAKE_OSX_ARCHITECTURES=i386 -D CMAKE_C_FLAGS=-m32 -D CMAKE_CXX_FLAGS=-m32 .. make -j8 sudo make install 库的构建和发布都很好,我已经将它们添加到我的xcode项目中。 然而,在构建我的测试应用程序时存在链接错误,它们似乎是名称混乱问题 架构i38

我在MacBookRunning Lion上本地构建了i386风格的OpenCV,使用

cmake -G "Unix Makefiles" -D CMAKE_OSX_ARCHITECTURES=i386 -D CMAKE_C_FLAGS=-m32 -D CMAKE_CXX_FLAGS=-m32 ..
make -j8
sudo make install
库的构建和发布都很好,我已经将它们添加到我的xcode项目中。 然而,在构建我的测试应用程序时存在链接错误,它们似乎是名称混乱问题

架构i386的未定义符号: “cv::namedWindow(std::_1::basic_string const&,int)”,引用自: _主音中的主音 “cv::imread(std::_1::basic_string const&,int)”,引用自: _主音中的主音 “cv::imshow(标准::_1::基本字符串常量&,cv::_InputArray常量&)”,引用自: _main.o中的main

以cv::imread为例,它是从libopencv_highgui.dylib导出的,名称为:

00007510 (__TEXT,__text) external __ZN2cv6imreadERKSsi 
而main.o正在引用符号

U __ZN2cv6imreadERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEi
另一方面,来自同一动态库的函数
\uuzn2cv7waitkeyei
链接很好

测试应用程序和框架都是针对i386 arch的


你知道是什么导致了这个问题吗?

我也有同样的问题。我认为问题可能是,如果你曾经编译过你的OpenCV库,它们可能是由GCC根据。我将XCode(Apple LLVM 4.1)中使用的编译器切换到LLVM GCC 4.2,现在它可以工作了


<>希望有帮助。

< p>我刚才遇到了同样的问题,并用LISSTDC ++作为C++标准库来修复。它被默认为libc++

项目构建设置>苹果LLVM编译器4.2语言-C++标准库< /P>