Opencv,未定义引用`cv :: imread(?? cv :: String const& ???,int)'

时间:2015-05-19 14:24:23

标签: c++ qt opencv

我在QT + Opencv中有一个项目,代码正在运行,但我不得不格式化窗口,现在我又试图再次导入项目并出现此错误。

对`cv :: imread(cv :: String const&,int)'的未定义引用 在这一行:

 mat = cv::imread(path);

虽然我的代码看起来像这样:

 QString caminho = QFileDialog::getOpenFileName(this, tr("Open File"),
                                       "",
                                       tr("Images (*.png *.tiff)") );

 std::string path = caminho.toStdString();
 mat = cv::imread(path);

我尝试了其他字符串代码,如" image.png"并没有奏效。

使用OpenCV3,QT5.4,Mingw,Windows8.1

抱歉,我的英文

1 个答案:

答案 0 :(得分:1)

两个注释:

  1. cv::imread使用类似“C”的字符串char *。那条线就像你告诉openCV打开一个名为“path”的文件。您应该将其更改为:mat = cv::imread(path.c_str())并且它很好!

  2. undefined reference是编译器没有找到该函数的实现时(m.s.刚刚发布了一个关于该函数的链接)。 GCC(MinGW)正在试图查看“imread”功能的位置。由于您格式化了系统,因此可能需要重置环境变量“PATH”或其他配置路径。我推荐这个阅读:http://www.cs.swarthmore.edu/~newhall/unixhelp/howto_C_libraries.html,它解释了为什么你需要这样做。

  3. 希望它有所帮助!