使用 openCV 时对各种函数的未定义引用
Undefined reference to various functions while using opencv
我正在使用带有日食C++的OpenCV 2.4.10与MinGW一起使用。这个版本的opencv只有Visual C的库,所以我在MinGW(eclipse)中链接了这些库。我尝试运行一个简单的代码来加载和显示图像:
#include<iostream>
#include<cv.h>
#include<highgui.h>
using namespace std;
using namespace cv;
int main(){
Mat image = imread("D:/photo1.tif",1);
namedWindow( "Display", WINDOW_AUTOSIZE );
imshow( "Display", image );
return 0;
}
但是在构建时,它会显示以下错误:
undefined reference to `cv::imread(std::string const&, int)'
undefined reference to `cv::namedWindow(std::string const&, int)'
undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'
我也尝试了同样的方法,但在那里它也显示了同样的问题,即对各种函数和类的未定义引用。我不知道我在链接或构建文件时是否缺少某些内容。所以请帮忙。谢谢
IMO Ashot的回答几乎是正确的,但我有一种感觉,你根本没有建造它们。如果是这样的话..
为 MinGW 构建,库对所有代码都有不同的链接,你不能使用不同的编译库进行编译
你是如何构建代码的?如果编译器是GCC,那么你需要添加带有-l标志的opencv库。
您可以使用命令 - pkg-config opencv --libs(在 Linux 中)找到 opencv libs。
"这个版本的opencv只有Visual C的库,所以我在MinGW(eclipse)中链接了这些库。
不,这是行不通的。
你不能使用预构建的Visual Studio,这些是针对其他编译器的。
你必须先获得 CMAKE 并使用 Mingw 构建 OpenCV 库。
通过首先使用 CMake 构建库,然后在 eclipse 中使用它来让它工作。
相关文章:
- 2个模板化类的非模板友元函数未定义引用错误
- C++:在共享对象中调用抽象基类构造函数/未定义的符号
- 获取线函数未定义错误。无法在字符串中保存可验证的内容
- 链表复制构造函数 |未定义的行为
- 尝试使用 std::函数(未定义的符号)声明模板化类状态时出现链接错误
- 专用纯虚拟模板函数(未定义引用)的另一个问题
- 可视化C++ strtoull 函数未定义
- 绑定C++中的C函数(未定义的引用)
- 函数未定义引用c++
- C++构造函数未定义的引用
- 在同一语句中调用的执行 IO 的函数:未定义或未指定
- 在参数中接受 2 个类的友元函数 - 未定义'Class'
- c++ CreateWindow()函数未定义
- 使用c++中的haskell函数:未定义引用错误
- c++模板变量函数未定义引用
- OpenGL函数未定义glow
- C/ c++未使用的内联函数未定义的引用
- 调用从不兼容类型强制转换的零数据结构的成员函数-未定义
- Cocos2d-x Box2D CContactListener构造函数未定义
- 包括Boost网络库使Windows.h函数未定义