【问题标题】:Segmentation fault on QTCreator with OpenCV使用 OpenCV 在 QTCreator 上出现分段错误
【发布时间】:2016-06-14 22:00:54
【问题描述】:

我正在使用以下程序测试 QTCreator IDE:

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

int main(){

    cv::imshow("My Image", 0);
    cv::waitKey(0);

    return 0;
}

如果我执行以下操作:

g++ -ggdb `pkg-config --cflags opencv` main.cpp `pkg-config --libs opencv`

程序运行正常。但是,如果我使用.pro 文件并进行制作,则会出现错误。 .pro 如下:

QT       += core

QT       -= gui

TARGET = qtTest
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp

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

LIBS += `pkg-config --cflags --libs opencv`

【问题讨论】:

    标签: c++ opencv segmentation-fault qt-creator


    【解决方案1】:

    几年前我也遇到过类似的问题。我不知道如何以及为什么,但这对我有帮助。在您的.pro 文件中尝试使用

    CONFIG += link_pkgconfig
    PKGCONFIG += opencv
    

    而不是

    LIBS += `pkg-config --cflags --libs opencv`
    

    编辑

    我怀疑,您的模式的区别:正常或调试。我认为错误是正确的,但是在调试模式下它以某种方式通过了。

    所以尝试在 QT 中以调试模式编译和运行您的程序(我希望该程序能够正确运行)。另外,为了比较,请尝试使用g++ 编译和运行您的程序,但没有选项-ggdb,我认为您会收到该错误。

    【讨论】:

    • 感谢vz_的帮助,但是我用g++编译程序没有-ggdb,程序运行正常。我尝试通过“调试模式”运行程序,但出现此错误:ptrace: Operation not permitted. Could not attach to the process. Make sure no other debugger traces this process. Check the settings of /proc/sys/kernel/yama/ptrace_scope For more details, see /etc/sysctl.d/10-ptrace.conf
    • 但是有些“奇怪”...当我运行程序时,我使用 cmake 而不是 qmake,一切正常,我也可以在 QTCreator 和控制台上运行它...
    • 对于ptrace 的错误,转到Projects -&gt; Run 并取消选中Run in terminal。 Regurding 从 QT 运行的程序很奇怪。也许您的qmake 使用其他编译器,查看生成的Makefile 或QT 中使用的编译器。
    • 我做了第一个(取消选中),然后我得到了错误build-test-Desktop-Debug/qtTest... The program has unexpectedly finished. /home/facu/qt-workspace/build-test-Desktop-Debug/qtTest exited with code 0...在makefile里面我有CC = gcc CXX = g++
    • 你好 vz_!我试图通过创建一个“NonQT-Project->Plain C++ Project”来编译它,它运行良好......谢谢你的帮助......我认为问题是“OpenCV / Highgui”使用QT,所以如果我让一个 QT 控制台项目它崩溃了......没有找到任何其他解释
    【解决方案2】:

    对于 QT 5,使用 QT=OFF 构建 OpenCV。对于 QT 4,使用 QT=ON 构建 OpenCV。

    【讨论】:

      猜你喜欢
      • 2015-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 2017-04-28
      • 1970-01-01
      • 2021-01-26
      相关资源
      最近更新 更多