将 opencv 库添加到 QT 创建者并出现错误:链接器命令失败,退出代码为 1
Posted
技术标签:
【中文标题】将 opencv 库添加到 QT 创建者并出现错误:链接器命令失败,退出代码为 1【英文标题】:Adding opencv library to QT creator and getting error: linker command failed with exit code 1 【发布时间】:2013-11-19 09:20:13 【问题描述】:我是 qt 新手,我在我的 mac (os 10.8.5) 上安装了 qt 创建器,并想添加 openCv 库。我按照这个 youtube 教程 (http://www.youtube.com/watch?v=i9hYiMXLZRs) 的说明进行操作。不知道这是否重要。
我的 untitled5.pro 文件:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = untitled5
TEMPLATE = app
INCLUDEPATH = /usr/local/include
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
LIBS += -L/usr/local/lib \
-1ibopencv_core \
-1ibopencv_imgproc \
-1ibopencv_features2d \
-1ibopencv_highgui
FORMS += mainwindow.ui
和main.cpp:
#include "mainwindow.h"
#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <QApplication>
int main(int argc, char *argv[])
QApplication a(argc, argv);
MainWindow w;
w.show();
IplImage* img = 0;
img = cvLoadImage("/Users/path/to/image.jpg");
cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);
cvShowImage("Example1", img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("Example1");
return a.exec();
这只是一些测试库 opencv 的代码。 通过运行此代码,我得到两个错误:
linker command failed with exit code 1 (use -v to see invocation)
[untitled5.app/Contents/MacOS/untitled5] Error 1
我完全不知道该怎么做,花了几个小时寻找答案。也许有人可以帮助我。你能告诉我错误信息是什么,我做错了什么吗?
【问题讨论】:
1ibopencv
那是1
(数字)吗?不应该是l
(信)吗?
【参考方案1】:
检查您的库名称。在您的专业文件中,第一个字母是1
(数字)而不是l
:
-libopencv_core \
-libopencv_imgproc \
-libopencv_features2d \
-libopencv_highgui
【讨论】:
哦,你是对的!我复制了这个文件,所以我没有注意到。非常感谢! 这些库的文件名是什么?尝试在-l
开关附近添加另一个l
,例如:-llibopencv_core
有3个版本。当我转到 /usr/local/lib 时,我可以找到:libopencv_core.2.4.7.dylib、libopencv_core.2.4.dylib、libopencv_core.dylib。我需要编写 .dylib 吗?
好的,我明白了!我做错了两件事。首先:我将库名称从 lopencv_... 更改为 libopencv_... 因为我在路径的文件夹中找到了这个名称。但它必须只是 lopencv_...(比再次找到库)第二:我的程序崩溃了。我将图像路径更改为 .png 图像。现在它可以工作了。不知道是.jpg格式还是路径错误。以上是关于将 opencv 库添加到 QT 创建者并出现错误:链接器命令失败,退出代码为 1的主要内容,如果未能解决你的问题,请参考以下文章
OpenCV2.4.9 Qt5.3.1 开发环境配置错误原因与解决方案
OpenCV2.4.9 With Qt5.3.1 开发环境配置问题解决篇