Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Mingw64 Qt-program



  • Здравствуйте,

    Windows 7 (64-bit), Msys2-Mingw64. в этой среде я установил Qt, используя "pacman -S ...".

    я делаю первые шаги в программировании с использованием Qt. в Интернете я нашел два примера:

    example1.cpp

    #include <QtCore>
    #include <iostream>

    int main() {

    std::cout << "Qt version: " << qVersion() << std::endl;
    

    }

    чтобы скомпилировать данную программу предложена (из Интернета) следующая команда:
    g++ -o example1.exe example1.cpp -I/C:/msys64/mingw64/include/QtCore -I/C:/msys64/mingw64/qt5-static/include/QtCore -L/C:/msys64/mingw64/qt5-static/lib -lQt5Core -fPIC

    однако результат компиляции выдает ошибку:

    C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\tmp\ccpq7uZL.o:my_qt_program2.cpp:(.text+0x2c): undefined reference to `__imp_qVersion'
    collect2.exe: error: ld returned 1 exit status

    может быть я не установил все необходимые Qt-пакеты в Msys2-Mingw64 ?

    example2.cpp

    #include <QApplication>
    #include <QWidget>

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

    QApplication app(argc, argv);
    
    QWidget window;
    
    window.resize(250, 150);
    window.setWindowTitle("Simple example");
    window.show();
    
    return app.exec();
    

    }

    данный GUI-файл я записал в отдельную директорию, и как рекомендовано в Интернете, я использовал следующие команды:

    qmake -project
    qmake
    make

    при этом создается отдельная (внутри данной) директория "release", где и формируется "example2.exe" исполняемый файл. однако при запуске данного exe-файла в консоли Mingw64 (./example2.exe) ничего не происходит, то есть окошко "Simple example" не появляется.

    прошу на Форуме объяснить мне, в чем мои ошибки при компиляции данных двух примеров; или это связано с Mingw64-Msys2 ?

    Спасибо.


  • Qt Champions 2019

    This post is deleted!

Log in to reply