4 votes

Qt Creator + OpenCV : Le programme fonctionne à partir de .exe mais pas à partir de l'éditeur

Je dois commencer à travailler avec OpenCV et comme j'ai l'habitude de travailler avec QtCreator, j'essaie de faire en sorte que tout fonctionne ensemble. J'ai téléchargé la dernière version d'OpenCV, et je l'ai compilé avec MinGW. Ensuite, j'ai créé ce petit projet de console pour l'essayer. Ci-dessous se trouve le projet .pro fichier :

QT       += core
QT       -= gui
TARGET = OpenCV_test4
CONFIG   += console
CONFIG   -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
INCLUDEPATH += C:\\Librerias\\opencv2.3.1\\release\\include
LIBS += -LC:\\Librerias\\opencv2.3.1\\release\\lib \
    -lopencv_core231.dll \
    -lopencv_highgui231.dll \
    -lopencv_imgproc231.dll \
    -lopencv_features2d231.dll \
    -lopencv_calib3d231.dll

Voici le main.cpp fichier :

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

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

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

    return a.exec();
}

(J'ai essayé ce code avec et sans l'option QCoreApplication lignes)

L'affaire est entendue : Il se lie et se construit, et lorsqu'il est exécuté à partir de QtCreator, seule une fenêtre de terminal appelée C:\QtSDK\QtCreator\bin\qtcreator_process_stub.exe apparaît avec la ligne "Appuyez sur RETURN pour fermer cette fenêtre..."

Mais si je lance le .exe depuis le dossier du projet, il fonctionne parfaitement ! Pourquoi QtCreator est-il incapable de lancer l'application ? Je trouve cela vraiment étrange, et j'apprécierais toute indication à ce sujet. Ce n'est pas tellement important, mais c'est un peu pénible de devoir lancer le .exe manuellement chaque fois que je change quelque chose pour vérifier comment cela fonctionne.

Merci pour votre temps :)

Informations complémentaires :

  • J'ai essayé les versions debug et release, le problème est le même dans les deux cas.
  • Le débogage ne fonctionne pas, il ne s'arrête à aucun point d'arrêt.
  • Je travaille sous Windows 7 Proffesional x64

SOLVED, Je ne sais pas vraiment ce que j'ai fait, cela a soudainement fonctionné et continue de fonctionner, j'aimerais pouvoir vous dire comment je l'ai réparé mais je n'en ai aucune idée, c'est tellement bizarre :(

0voto

old-ufo Points 2652

Vérifiez Projets -> Paramètres d'exécution -> Exécuter dans le terminal. Il devrait être activé, mais il semble qu'il soit désactivé.

0voto

Roman Points 1

J'ai rencontré le même problème avec QtCreator et OpenCL sous Linux. Le programme de test simple fonctionne après le démarrage à partir du terminal et ne fonctionne pas après le démarrage à partir de QtCreator. J'ai trouvé que la cause était le codage en dur de LD_LIBRARY_PATH dans les paramètres de l'environnement d'exécution du projet. Je l'ai remplacé par une chaîne vide et le problème a été résolu.

0voto

J'ai eu le même problème avec l'environnement suivant : Raspbian, Qt, openCV et une application gui.

La recommandation de old-ufo a fonctionné pour moi : - D'abord, activer "Exécuter dans le terminal", ce qui a échoué - Ensuite, désactiver "Run in terminal", ce qui m'a permis de déboguer correctement mon application.

Je comprends que ce n'est pas scientifique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X