Xcode OpenCV中的imwrite抛出编译错误

Xcode OpenCV中的imwrite抛出编译错误,xcode,macos,opencv,compiler-errors,Xcode,Macos,Opencv,Compiler Errors,我已经使用OpenCV有一段时间了,还使用了imwrite函数,但不幸的是,这已经不起作用了 我使用OpenCV 2.4.3运行,示例代码如下: imwrite("somepath/somefile.png", myMat); 错误: Undefined symbols for architecture x86_64: "cv::imwrite(std::string const&, cv::_InputArray const&, std::__debug::vector<

我已经使用OpenCV有一段时间了,还使用了
imwrite
函数,但不幸的是,这已经不起作用了

我使用OpenCV 2.4.3运行,示例代码如下:

imwrite("somepath/somefile.png", myMat);
错误:

Undefined symbols for architecture x86_64:
"cv::imwrite(std::string const&, cv::_InputArray const&, std::__debug::vector<int,     std::allocator<int> > const&)", referenced from:
MyProject::this_callback(int, void*) in MyProject.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
架构x86_64的未定义符号: “cv::imwrite(std::string const&,cv:_inputarrayconst&,std:u debug::vector const&)”,引用自: MyProject::MyProject.o中的这个_回调(int,void*) ld:找不到架构x86_64的符号 叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用) 这个错误看起来有点熟悉,但我无法确定是什么错了


是的,我还以为你在用XCode呢。我也有同样的问题

如果更改项目设置以便:

  • 使用GNU++ 11作为C++语言方言
  • LBSTDC++(GNU C++标准)作为C++标准库
您的链接问题将消失

我使用Apple LLVM 4.1


当我遇到这个问题时,我试着在我的一个老项目中添加一个新的目标,我知道,我工作过。然后我把这个目标变成了一个源文件程序


这一定是XCode的一个“神奇”部分,因为我想有一段时间我在重启后无法让同一个项目工作是的,我还以为你在用XCode呢。我也有同样的问题

如果更改项目设置以便:

  • 使用GNU++ 11作为C++语言方言
  • LBSTDC++(GNU C++标准)作为C++标准库
您的链接问题将消失

我使用Apple LLVM 4.1


当我遇到这个问题时,我试着在我的一个老项目中添加一个新的目标,我知道,我工作过。然后我把这个目标变成了一个源文件程序


这一定是XCode的一个“神奇”部分,因为我想有一段时间我在重启后无法让同一个项目工作S

我做了巴纳巴斯做的事情,也在cvdef.h上得到了这个问题。我感到绝望,所以我所做的只是更改了头文件

在/usr/local/cvdef.h行205中:

我变了

include <cstdint>
typedef std::uint32_t uint;
包括
typedef std::uint32_t uint;
致:

包括
typedef std::tr1::uint32\u t uint;
基于


我认为opencv开发者应该对64位的代码进行一些修改。

我做了Barnabas做的事情,并且在cvdef.h上也遇到了问题。我感到绝望,所以我所做的只是更改了头文件

在/usr/local/cvdef.h行205中:

我变了

include <cstdint>
typedef std::uint32_t uint;
包括
typedef std::uint32_t uint;
致:

包括
typedef std::tr1::uint32\u t uint;
基于


我认为opencv开发人员应该对64位的代码进行一些修改。

使用类似于
clang 3.8.0版(trunk 257459)
,而不是
gcc 4.9.2版(MacPorts gcc49 4.9.2_1+universal)
的代码进行编译


作为参考,cmd:clang++-std=c++11`pkg config--cflags--libs opencv`code.cpp-o code

使用类似于clang版本3.8.0(trunk 257459)的东西,而不是使用
gcc版本4.9.2(MacPorts gcc49 4.9.2_1+universal)
来编译


作为参考,cmd:clang++-std=c++11`pkg config--cflags--libs opencv`code.cpp-o code

我实际上希望您是对的,因为我的旧项目有一些类似的编译器设置。我正在运行LLVM3.1,这是一个相当旧的版本,但是是可行的。请看我原来的帖子,和截图。这个错误还没有解决。我最近刚刚更新到XCode 4.5,它对我来说很好用。我很担心,因为最初我回到了XCode 4.2,因为我在XCode 4.3上遇到了一些问题。但是我可以说,在2-3周后,我对新版本没有任何问题。这在带有LLVM 5.0和以上设置的Xcode 5中似乎不起作用。OpenCV抱怨在使用libstdc++时cvdef.h中“未找到'cstdint'文件”。实际上我希望您是对的,因为我的旧项目有一些类似的编译器设置。我正在运行LLVM3.1,这是一个相当旧的版本,但是是可行的。请看我原来的帖子,和截图。这个错误还没有解决。我最近刚刚更新到XCode 4.5,它对我来说很好用。我很担心,因为最初我回到了XCode 4.2,因为我在XCode 4.3上遇到了一些问题。但是我可以说,在2-3周后,我对新版本没有任何问题。这在带有LLVM 5.0和以上设置的Xcode 5中似乎不起作用。OpenCV抱怨在使用libstdc++时cvdef.h中“未找到'cstdint'文件”。