Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2013, 11:53   #1
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию Установка Qwt

Всем привет!

Не могу начать работать с Qwt. Установил. Линковщик при сборки примера (из примеров qwt) требует библиотеки '.lib'. При установке Qwt в папке lib появляются только файлы: '.a', '.dll'. Устанавливал с помощью утилиты nmake.
8Observer8 вне форума Ответить с цитированием
Старый 06.01.2013, 13:31   #2
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Мой Qt Creator использует компилятор Visual Studio C++. Поэтому требует '.lib' Наверное, это где-то в настройках описано. Я не нашёл.

Я думаю так. Компилятору Visual Studio нужны '.lib' библиотеки qwt. А MinGW нужны '.a'

Для создания библиотек qwt я пробовал использовать и утилиту nmake и утилиту mingw32-make. Создаются библиотеки '.a' и '.dll'

Сейчас попробовал вот по этой инструкции сделать: ссылка

Перед сборкой библиотек qwt изменил файл qwtconfig.pri (как сказано в инструкции выше):

Код:
################################################################
# Qwt Widget Library
# Copyright (C) 1997   Josef Wilgen
# Copyright (C) 2002   Uwe Rathmann
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the Qwt License, Version 1.0
################################################################

QWT_VER_MAJ      = 6
QWT_VER_MIN      = 0
QWT_VER_PAT      = 2
QWT_VERSION      = $${QWT_VER_MAJ}.$${QWT_VER_MIN}.$${QWT_VER_PAT}

######################################################################
# Install paths
######################################################################

QWT_INSTALL_PREFIX = $$[QT_INSTALL_PREFIX]

unix {
    QWT_INSTALL_PREFIX    = /usr/local/qwt-$$QWT_VERSION
}

win32 {
    QWT_INSTALL_PREFIX    = C:/Qwt-$$QWT_VERSION
}

QWT_INSTALL_DOCS      = $${QWT_INSTALL_PREFIX}/doc
QWT_INSTALL_HEADERS   = $${QWT_INSTALL_PREFIX}/include
QWT_INSTALL_LIBS      = $${QWT_INSTALL_PREFIX}/lib

######################################################################
# Designer plugin
######################################################################

QWT_INSTALL_PLUGINS   = $${QWT_INSTALL_PREFIX}/plugins/designer
# QWT_INSTALL_PLUGINS   = $${QT_INSTALL_PREFIX}/plugins/designer

######################################################################
# Features
# When building a Qwt application with qmake you might want to load
# the compiler/linker flags, that are required to build a Qwt application
# from qwt.prf. Therefore all you need to do is to add "CONFIG += qwt" 
# to your project file and take care, that qwt.prf can be found by qmake.
# ( see http://doc.trolltech.com/4.7/qmake-advanced-usage.html#adding-new-configuration-features )
# I recommend not to install the Qwt features together with the
# Qt features, because you will have to reinstall the Qwt features,
# with every Qt upgrade. 
######################################################################

QWT_INSTALL_FEATURES  = $${QWT_INSTALL_PREFIX}/features
# QWT_INSTALL_FEATURES  = $${QT_INSTALL_PREFIX}/features

######################################################################
# qmake internal options
######################################################################

CONFIG           += qt     # Also for Qtopia Core!
CONFIG           += warn_on
CONFIG           += thread
CONFIG           += silent

win32 {
    # On Windows you can't mix release and debug libraries.
    # The designer is built in release mode. If you like to use it
    # you need a release version. For your own application development you
    # might need a debug version. 
    # Enable debug_and_release + build_all if you want to build both.

    #CONFIG           += release     # release/debug/debug_and_release
    CONFIG           += debug_and_release
    #CONFIG           += build_all
}

######################################################################
# Build the static/shared libraries.
# If QwtDll is enabled, a shared library is built, otherwise
# it will be a static library.
######################################################################

#QWT_CONFIG           += QwtDll

######################################################################
# QwtPlot enables all classes, that are needed to use the QwtPlot 
# widget. 
######################################################################
Продолжение файла 'qwtconfig.pri' в следующем сообщении
8Observer8 вне форума Ответить с цитированием
Старый 06.01.2013, 13:33   #3
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Продолжение файла 'qwtconfig.pri'

Код:
QWT_CONFIG       += QwtPlot

######################################################################
# QwtWidgets enables all classes, that are needed to use the all other
# widgets (sliders, dials, ...), beside QwtPlot. 
######################################################################

QWT_CONFIG     += QwtWidgets

######################################################################
# If you want to display svg images on the plot canvas, or
# export a plot to a SVG document
######################################################################

QWT_CONFIG     += QwtSvg

######################################################################
# You can use the MathML renderer of the Qt solutions package to 
# enable MathML support in Qwt. Because of license implications
# the ( modified ) code of the MML Widget solution is included and
# linked together with the QwtMathMLTextEngine into an own library. 
# To use it you will have to add "CONFIG += qwtmathml"
# to your qmake project file.
######################################################################

QWT_CONFIG     += QwtMathML

######################################################################
# If you want to build the Qwt designer plugin, 
# enable the line below.
# Otherwise you have to build it from the designer directory.
######################################################################

QWT_CONFIG     += QwtDesigner

######################################################################
# If you want to auto build the examples, enable the line below
# Otherwise you have to build them from the examples directory.
######################################################################

# QWT_CONFIG     += QwtExamples

######################################################################
# When Qt has been built as framework qmake ( qtAddLibrary ) wants 
# to link frameworks instead of regular libs
######################################################################

macx:CONFIG(qt_framework, qt_framework|qt_no_framework) {

    QWT_CONFIG += QwtFramework
}
Делее по инструкции применил последовательно следующие команды, находясь в директории с файлом qwt.pro:

Цитата:
qmake
mingw32-make
В папке lib появились файлы '.a'

Далее, зашёл в директорию с примерами qwt (c:\qt\qwt-6.0.2\examples\bode\), чтобы откомпилировать пример и получать исполняемый файл. Но файла не получал. А проделал следующее:

Изменил файл bode.pro (как в инструкции по ссылке выше):

Код:
################################################################
# Qwt Widget Library
# Copyright (C) 1997   Josef Wilgen
# Copyright (C) 2002   Uwe Rathmann
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the Qwt License, Version 1.0
################################################################

include( $${PWD}/../examples.pri )

TARGET       = bode

HEADERS = \
    mainwindow.h \
    plot.h \
    complexnumber.h \ 
    pixmaps.h

SOURCES = \
    plot.cpp \
    mainwindow.cpp \
    main.cpp

QWT_LOCATION = c:\qt\qwt-6.0.2
INCLUDEPATH += $${QWT_LOCATION}/src
LIBS = -L$${QWT_LOCATION}/lib \
     -lqwt

if(!debug_and_release|build_pass):CONFIG(debug, debug|release) { 
    win32:LIBS = $$member(LIBS, 0) \
        $$member(LIBS, 1)d
}
Ввёл последовательно две команды:

qmake -o Makefile bode.pro
mingw32-make

Появились файлы '.o'. А где же .exe?

Вот весь вывод:
Цитата:

C:\qt\qwt-6.0.2\examples\bode>qmake -o Makefile bode.pro
WARNING: c:\qt\qwt-6.0.2\examples\bode\bode.pro:25: Unescaped backslashes are deprecated.
WARNING: c:\qt\qwt-6.0.2\examples\bode\bode.pro:25: Unescaped backslashes are deprecated.
WARNING: c:\qt\qwt-6.0.2\examples\bode\bode.pro:25: Unescaped backslashes are deprecated.

C:\qt\qwt-6.0.2\examples\bode>mingw32-make
C:/MinGW/bin/mingw32-make.EXE -f Makefile.Debug all
mingw32-make.EXE[1]: Entering directory `C:/qt/qwt-6.0.2/examples/bode'
compiling plot.cpp
compiling mainwindow.cpp
compiling main.cpp
moc mainwindow.h
compiling moc/moc_mainwindow.cpp
moc plot.h
compiling moc/moc_plot.cpp
linking ..\bin\bode.exe
mingw32-make.EXE[1]: Leaving directory `C:/qt/qwt-6.0.2/examples/bode'
C:/MinGW/bin/mingw32-make.EXE -f Makefile.Release all
mingw32-make.EXE[1]: Entering directory `C:/qt/qwt-6.0.2/examples/bode'
compiling plot.cpp
compiling mainwindow.cpp
compiling main.cpp
compiling moc/moc_mainwindow.cpp
compiling moc/moc_plot.cpp
linking ..\bin\bode.exe
mingw32-make.EXE[1]: Leaving directory `C:/qt/qwt-6.0.2/examples/bode'
8Observer8 вне форума Ответить с цитированием
Старый 06.01.2013, 22:41   #4
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Меня натолкули на мысль (вот здесь: ссылка), что exe-файл, всё-таки создаётся. И действительно, я его нашёл в каталоге: 'C:\qt\qwt-6.0.2\examples\bin'

В общем, нужно изучать документацию на qmake и делать по-людcки.
8Observer8 вне форума Ответить с цитированием
Старый 15.01.2013, 21:29   #5
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Долго мучился с настройкой Qwt в Qt Creator 4.7.4 в Window 7. Решил описать решение здесь.

У нас должен быть установлен MinGW

- скачиваем Qwt 6.0.2 http://sourceforge.net/projects/qwt/files/qwt/

- распаковываем и переходим в папку qwt-6.0.2

- заменяем содержимое файла qwtconfig.pri на содержимое из сообщения выше

- устанавливаем Qwt:

qmake qwt.pro
mingw32-make
mingw32-make install

- переходим в папку qwt-6.0.2/examples/bode и меняем содержимое файла bode.pro на следующее:

bode.pro

Код:
################################################################
# Qwt Widget Library
# Copyright (C) 1997   Josef Wilgen
# Copyright (C) 2002   Uwe Rathmann
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the Qwt License, Version 1.0
################################################################

include( $${PWD}/../examples.pri )

TARGET       = bode

HEADERS = \
    mainwindow.h \
    plot.h \
    complexnumber.h \ 
    pixmaps.h

SOURCES = \
    plot.cpp \
    mainwindow.cpp \
    main.cpp

QWT_LOCATION = c:/Qwt-6.0.2
INCLUDEPATH += $${QWT_LOCATION}/include
LIBS = -L$${QWT_LOCATION}/lib \
     -lqwt

if(!debug_and_release|build_pass):CONFIG(debug, debug|release) { 
    win32:LIBS = $$member(LIBS, 0) \
        $$member(LIBS, 1)d
}
- открываем bode.pro с помощью Qt Creator

- запускаем поект:



Примечание. Qt Creator должен быть настроен на компилирование MinGW (не MVS) иначе будут требоваться '.lib' библиотеки вместо '.a'. Чтобы получить '.lib' файлы нужно использовать nmake утилиту (как написано в файле INSTALL, внутри каталого Qwt). У меня утилита nmake не захотела собирать Qwt...

Последний раз редактировалось 8Observer8; 15.01.2013 в 21:46.
8Observer8 вне форума Ответить с цитированием
Старый 15.04.2013, 03:24   #6
dreamind
 
Регистрация: 15.04.2013
Сообщений: 3
По умолчанию

Доброго времени суток. Не могу установить qwt, даже с учётом всех вышеизложенных инструкций.
-Ошибок не выбивает.
-Папка lib стабильно пуста plugins - вообще не генерируется.
пробовал инструкцию: http://qtlinux.narod.ru/install_qwt.htm - при вводе команды patch выбивает: ...patch не является внутренней или внешней командой..
PATH прописывал - безтолку.
Где загвостка?
dreamind вне форума Ответить с цитированием
Старый 15.04.2013, 03:26   #7
dreamind
 
Регистрация: 15.04.2013
Сообщений: 3
По умолчанию

у меня: Windows8, Qt 5.0.1 for Desktop (MinGW 4.7)
dreamind вне форума Ответить с цитированием
Старый 15.04.2013, 05:16   #8
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Так невозможно ответить, почему. Единственый способ - опишите свои действия с самого начала, скопируйте на форум вывод в консоль.

Что выводится в консоль после этих команд (перенаправьте вывод в файл, вот так: qmake qwt.pro > report.txt):

qmake qwt.pro
mingw32-make
mingw32-make install

P.S. Там вывод огромный получится. Прикрепите файлы с выводом к сообщению

Последний раз редактировалось 8Observer8; 15.04.2013 в 05:52.
8Observer8 вне форума Ответить с цитированием
Старый 15.04.2013, 08:56   #9
dreamind
 
Регистрация: 15.04.2013
Сообщений: 3
По умолчанию

Алгоритм:
1) Скачиваю/распаковываю qwt6.0.2.
2) Изменяю файл qwtconfig.pri (если не изменяю, то результат тот же)
3) выполняю:
qmake qwt.pro
mingw32-make
mingw32-make install
Отчёты:
- после qmake - пустой файл.
- после mingw32-make:
cd src\ && ( if not exist Makefile C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin\ qmake.exe C:\qwt-6.0.2\src\src.pro -o Makefile ) && mingw32-make -f Makefile
mingw32-make[1]: Entering directory 'C:/qwt-6.0.2/src'
mingw32-make -f Makefile.Release all
mingw32-make[2]: Entering directory 'C:/qwt-6.0.2/src'
compiling qwt_abstract_scale_draw.cpp
compiling qwt_interval_symbol.cpp
compiling qwt_clipper.cpp
Makefile.Release:3184: recipe for target 'release/qwt_clipper.o' failed
mingw32-make[2]: Leaving directory 'C:/qwt-6.0.2/src'
Makefile:38: recipe for target 'release-all' failed
mingw32-make[1]: Leaving directory 'C:/qwt-6.0.2/src'
makefile:40: recipe for target 'sub-src-make_first-ordered' failed

- после mingw32-make install:
cd src\ && ( if not exist Makefile C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin\ qmake.exe C:\qwt-6.0.2\src\src.pro -o Makefile ) && mingw32-make -f Makefile install
mingw32-make[1]: Entering directory 'C:/qwt-6.0.2/src'
mingw32-make -f Makefile.Release install
mingw32-make[2]: Entering directory 'C:/qwt-6.0.2/src'
compiling qwt_clipper.cpp
Makefile.Release:3184: recipe for target 'release/qwt_clipper.o' failed
mingw32-make[2]: Leaving directory 'C:/qwt-6.0.2/src'
Makefile:44: recipe for target 'release-install' failed
mingw32-make[1]: Leaving directory 'C:/qwt-6.0.2/src'
makefile:64: recipe for target 'sub-src-install_subtargets-ordered' failed
dreamind вне форума Ответить с цитированием
Старый 17.04.2013, 09:02   #10
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Экспериментируйте, не сдавайтесь! Выкладывайте, что на экспериментировали.

Я в выходные подумаю, в чём может быть дело
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с запуском qwt:release Lindemann66 Qt и кроссплатформенное программирование С/С++ 0 17.10.2011 11:13
Установка ОС Acilon Операционные системы общие вопросы 7 02.08.2011 00:21
[Qt, Qwt] Обработка события нажатия на график newStudent Qt и кроссплатформенное программирование С/С++ 4 02.07.2011 23:59
установка candalik PHP 1 13.01.2011 14:26
Qt+qwt Impuls1989 Qt и кроссплатформенное программирование С/С++ 1 08.10.2010 19:50