Я создал проект на Qt Creator 4.12.2 под именем NcursesTest в операционной системе Windows 10, в котором используется библиотека ncurses для работы с консольным окном. Библиотеку ncurses я установил на мой компьютер с помощью программы MSYS2. После установки MSYS2 я вызвал MSYS MING32, в окне я ввёл команду
для обновления репозитория, затем я закрыл это окно с помощью команды exit, затем я снова вызвал MSYS MING32, в окне которого я ввёл
| Цитата | $ pacman –Ss ncurses
|
Для установки библиотеки ncurses. После этого я то же самое сделал с MSYS MING64 – сперва ввёл в его окне
А затем, после закрытия этого окна с помощью команды exit, я заново вызвал MSYS MINGW64 и ввёл в его окне команду
| Цитата | $ pacman –Ss ncurses
|
В результате чего библиотека ncurses была установлена на мой комптьютер.
Файл mainwindow.cpp моего проекта:
| Код | #include “mainwindow.h” #include “ui_mainwindow.h” #include “ncurses.h”
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), Ui(new Ui::MainWindow) { ui->setupUi(this); }
MainWindow::~MainWindow() { delete ui; }
void MainWindow::on_pushButton_clicked() // если была нажата кнопка “Выход” { close(); }
void MainWindow::on_pushButton_2_clicked() // если была нажата кнопка “Тестировать” { initscr(); printw(“Hello world!\n”); refresh(); getch(); endwin(); }
|
В результате при компиляции проекта появляются сообщения об ошибках:
| Цитата | undefined reference to ‘initstr’ undefined reference to ‘printw’ undefined reference to ‘refresh’ undefined reference to ‘stdscr’ undefined reference to ‘wgetch’ undefined reference to ‘endwin’
|
Файл NcursesTest.pro выглядит следующим образом:
| Цитата | QT += core gui greaterThan(QT_MAJOR_VERSION,4): QT+=widgets CONFIG += c++11 DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \ main.cpp mainwindow.cpp
HEADERS += \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/curses.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/cursesapp.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/cursesf.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/cursesm.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/cursesp.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/cursesw.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/cursslk.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/eti.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/etip.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/form.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/menu.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/nc_tparm.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/ncurses.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/ncurses_dll.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/ncurses_mingw.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/panel.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/term.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/term_entry.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/termcap.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/tic.h \ C:/Qt/Qt5.12.9/Tools/mingw730_32/ opt/include/ncursesw/unctrl.h \ mainwindow.h
FORMS += \ mainwindow.ui
INCLUDEPATH += /path/to/ncurses/headers INCLUDEPATH += C:/Qt/Qt5.12.9/Tools/mingw730_32/opt/include/ncursesw
LIBS ++ -L/path/to/ncurses/library/-lncursesw
qnx: target.path = /tmpl/$${TARGET}/bin else: unix:!android:target.path=/opt/$${TARGET}/bin !isEmpty(target.path):INSTALLS+=target Win32:CONFIG(release, debug|release): LIBS +=-LC:/Qt/Qt5.12.9/Tools/mingw730_32/opt/lib/lncursesw else:win32:CONFIG(debug, debug|release): LIBS += -LC:/Qt/Qt5.12.9/Tools/mingw730_32/opt/lib/lncursesw else:unix: LIBS += -LC:/Qt5.12.9/Tools/mingw730_32/opt/include/ncursesw
DEPENDPATH += C:/Qt/Qt5.12.9/Tools/mingw730_32/opt/include/ncursesw
|
Как сделать так, чтобы у меня произошло правильное подключение библиотеки ncurses в мой проект? Как сделать так, чтобы моя программа нормально скомпилировалась и запустилась?
|