0

在一些有用的提示之后,这是这篇文章的新版本,问题是我的程序似乎正在以某种方式运行,但它只是发出一些错误......我不知道它实际上提到了什么,因为安装了库,我将路径形式 LIBS += -LC:/usr/local/lib/ \更改LIBS += -L/usr/local/lib/ \为有人说它实际上是指 Windows 而你使用 linux(chakra) 然后在目录末尾添加“\”并将 pkg-config 添加到我的 .pro 文件中,所以这个是新版本的新问题...:

    Starting /home/lucifer/PR0J3CTs/FirstOpenCV-build-desktop-Qt_4_8_2_in_PATH__System__Release/FirstOpenCV...
/home/lucifer/PR0J3CTs/FirstOpenCV-build-desktop-Qt_4_8_2_in_PATH__System__Release/FirstOpenCV exited with code 0

Debugging starts
the debug information found in "/usr/lib/libQtOpenGL.so.4.8.2.debug" does not match "/usr/lib/libQtOpenGL.so.4" (CRC mismatch).
the debug information found in "/usr/lib/libQtGui.so.4.8.2.debug" does not match "/usr/lib/libQtGui.so.4" (CRC mismatch).
the debug information found in "/usr/lib/libQtCore.so.4.8.2.debug" does not match "/usr/lib/libQtCore.so.4" (CRC mismatch).
the debug information found in "/usr/lib/libQtTest.so.4.8.2.debug" does not match "/usr/lib/libQtTest.so.4" (CRC mismatch).
the debug information found in "/usr/lib/libQtNetwork.so.4.8.2.debug" does not match "/usr/lib/libQtNetwork.so.4" (CRC mismatch).
the debug information found in "/usr/lib/libQtXml.so.4.8.2.debug" does not match "/usr/lib/libQtXml.so.4" (CRC mismatch).
the debug information found in "/usr/lib/libQtSvg.so.4.8.2.debug" does not match "/usr/lib/libQtSvg.so.4" (CRC mismatch).
the debug information found in "/usr/lib/libQtDBus.so.4.8.2.debug" does not match "/usr/lib/libQtDBus.so.4" (CRC mismatch).
Debugging has finished

这是我的 .pro 配置 [如您所见,我评论了 (#) 两个 LIBS 配置之一,我只是想问哪个更准确或更有用,昨天我尝试过,它与较新版本的libavcodec 所以我搜索了一些并下载了 libavcodec.53 并对其进行了配置,但我不确定现在应该发生什么,我现在正试图从 ccr 社区存储库获取 opencv-qt-for-all 包并让程序自己处理这些问题,但我确信它不会解决我的问题]:

QT       += core
QT       -= gui

TARGET = FirstOpenCV
CONFIG   += console
CONFIG   -= app_bundle
CONFIG   += link_pkgconfig
PKGCONFIG += opencv

TEMPLATE = app

SOURCES += main.cpp

INCLUDEPATH += /usr/local/include/opencv2/

#LIBS += -L/usr/local/lib/ \
#-libopencv_core.so \
#-libopencv_highgui.so \
#-libopencv_imgproc.so \
#-libopencv_features2d \
#-libopencv_calib3d.so

LIBS += /usr/lib/libopencv_core.so \
/usr/lib/libopencv_highgui.so \
/usr/lib/libopencv_imgproc.so \
/usr/lib/libopencv_features2d.so \
/usr/lib/libopencv_calib3d.so \
/usr/lib/libavcodec.so

这是代码:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main() {

    // read an image
    Mat image = imread("002.jpg");
    // create image window named "My Image"
    namedWindow("My Image");
    // show the image on window
    imshow("My Image", image);
    // wait key for 5000 ms
    waitKey(5000);

    return 0;
}
4

4 回答 4

1

尝试:

QT       += core

QT       -= gui

TARGET = FirstOpenCV
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp

INCLUDEPATH += /usr/local/include/opencv2/

LIBS += -LC:/usr/local/lib/ \
-lopencv_core \
-lopencv_highgui \
-lopencv_imgproc \
-lopencv_features2d \
-lopencv_calib3d
于 2012-09-27T17:47:27.753 回答
0

您的 LIBS 声明似乎失败了。

你可以试试这个:

LIBS += -LC:/usr/local/lib/ \
    -libopencv_core.so.2.4.2 \
    -libopencv_highgui.so.2.4.2 \
    -libopencv_imgproc.so.2.4.2 \
    -libopencv_features2d.so.2.4.2 \
    -libopencv_calib3d.so.2.ss4.2

请注意行末的反斜杠。如果没有这些,下一行将被解析为单独的声明,并且“-libopencv_core.so.2.4.2”本身不是有效的声明。

于 2012-09-27T09:56:40.087 回答
0

我从未见过在 Unix 上使用 C:/ :那么这可能是必需的更正(也解释了@enderland 的答案):

LIBS += -L/usr/local/lib/ \
-lopencv_core \
-lopencv_highgui \
-lopencv_imgproc \
-lopencv_features2d \
-lopencv_calib3d

升级到 OpenCV 2.4.2 时,我的系统出现了一些问题 -运行时绑定到以前的版本,与操作系统捆绑在一起。我不得不(痛苦地)重新编译并重新安装 OpenCV,并且我发现了一个不错的“技巧”:使用 pkgconfig 而不是硬编码路径:

CONFIG += link_pkgconfig
PKGCONFIG += opencv
于 2012-09-27T18:44:42.883 回答
0

问题已解决,正如我之前所说,我的程序已执行但出现错误问题是图片目录,我已将其放在 main.cpp 旁边的源文件中,问题是如果你想获得真实的结果使用调试或发布模式你应该把图片放在这两个目录中,然后再运行一次。

如果您愿意通过与我使用的源文件相同的目录运行它,您应该打开一个终端或在您的 Dolphin 文件管理器中按 F4 或您使用的任何内容并首先运行,然后qmake调用make,另一个问题是我的操作系统(脉轮)不会让已安装的设备具有可执行权限,因此您必须将您的项目移动到您的操作系统环境中的主页或您喜欢的任何位置。

解决了... :) Tnx 每一个 :)

于 2012-10-06T09:02:01.180 回答