Sur une machine avec squeeze je n’arrive pas à compiler une application avec les widgets de qwt sous qtcreator.
dmon@squeezeevo:~$ aptitude search qwt
i libqwt-dev - Qt widgets library for technical applicati
i libqwt-doc - Qt widgets library for technical applicati
i A libqwt4c2 - Qt widgets library for technical applicati
p libqwt5-doc - Qt widgets library for technical applicati
p libqwt5-qt3 - Qt3 widgets library for technical applicat
p libqwt5-qt3-dev - Qt3 widgets library for technical applicat
i libqwt5-qt4 - Qt4 widgets library for technical applicat
i libqwt5-qt4-dev - Qt4 widgets library for technical applicat
p libqwtplot3d-doc - 3D plotting library based on Qt/OpenGL (do
p libqwtplot3d-qt3-0 - 3D plotting library based on Qt3/OpenGL (r
p libqwtplot3d-qt3-dev - 3D plotting library based on Qt3/OpenGL (d
i libqwtplot3d-qt4-0 - 3D plotting library based on Qt4/OpenGL (r
i libqwtplot3d-qt4-dev - 3D plotting library based on Qt4/OpenGL (d
p python-qwt3d-doc - Documentation for the Python-qwt3d library
p python-qwt3d-qt3 - Python bindings of the QwtPlot3D library
p python-qwt3d-qt4 - Python bindings of the QwtPlot3D library
p python-qwt5-doc - Python version of the Qwt5 technical widge
p python-qwt5-qt3 - Python version of the Qwt5 technical widge
p python-qwt5-qt4 - Python version of the Qwt5 technical widge
dmon@squeezeevo:~$
À la compilation j’ai quand même ça
dmon@squeezeevo:~/src/qinstrumentation$ ls
dialog.cpp dialog.ui main.o qinstrumentation.pro ui_dialog.h
dialog.h main.cpp Makefile qinstrumentation.pro.user
dmon@squeezeevo:~/src/qinstrumentation$ make
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/qwt -I. -I. -o dialog.o dialog.cpp
In file included from /usr/include/qwt/qwt_scldiv.h:14,
from /usr/include/qwt/qwt_scldraw.h:19,
from /usr/include/qwt/qwt_sclif.h:14,
from /usr/include/qwt/qwt_knob.h:15,
from ui_dialog.h:19,
from dialog.cpp:2:
/usr/include/qwt/qwt_array.h:25:23: error: qmemarray.h: Aucun fichier ou dossier de ce type
In file included from /usr/include/qwt/qwt_knob.h:14,
from ui_dialog.h:19,
from dialog.cpp:2:
/usr/include/qwt/qwt_sldbase.h:53: error: ‘Orientation’ has not been declared
/usr/include/qwt/qwt_sldbase.h:54: error: ‘Orientation’ does not name a type
In file included from /usr/include/qwt/qwt_dimap.h:14,
from /usr/include/qwt/qwt_scldraw.h:18,
from /usr/include/qwt/qwt_sclif.h:14,
from /usr/include/qwt/qwt_knob.h:15,
from ui_dialog.h:19,
from dialog.cpp:2:
/usr/include/qwt/qwt_math.h: In function ‘void qwtShiftArray(T*, int, int)’:
/usr/include/qwt/qwt_math.h:162: error: there are no arguments to ‘QABS’ that depend on a template parameter, so a declaration of ‘QABS’ must be available
/usr/include/qwt/qwt_math.h:162: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
In file included from /usr/include/qwt/qwt_scldraw.h:19,
from /usr/include/qwt/qwt_sclif.h:14,
from /usr/include/qwt/qwt_knob.h:15,
from ui_dialog.h:19,
from dialog.cpp:2:
/usr/include/qwt/qwt_scldiv.h: At global scope:
/usr/include/qwt/qwt_scldiv.h:128: error: ISO C++ forbids declaration of ‘QMemArray’ with no type
/usr/include/qwt/qwt_scldiv.h:128: error: expected ‘;’ before ‘<’ token
/usr/include/qwt/qwt_scldiv.h:129: error: ISO C++ forbids declaration of ‘QMemArray’ with no type
/usr/include/qwt/qwt_scldiv.h:129: error: expected ‘;’ before ‘<’ token
/usr/include/qwt/qwt_scldiv.h: In member function ‘uint QwtScaleDiv::minCnt() const’:
/usr/include/qwt/qwt_scldiv.h:91: error: ‘d_minMarks’ was not declared in this scope
/usr/include/qwt/qwt_scldiv.h: In member function ‘uint QwtScaleDiv::majCnt() const’:
/usr/include/qwt/qwt_scldiv.h:96: error: ‘d_majMarks’ was not declared in this scope
/usr/include/qwt/qwt_scldiv.h: In member function ‘double QwtScaleDiv::majMark(int) const’:
/usr/include/qwt/qwt_scldiv.h:105: error: ‘d_majMarks’ was not declared in this scope
/usr/include/qwt/qwt_scldiv.h: In member function ‘double QwtScaleDiv::minMark(int) const’:
/usr/include/qwt/qwt_scldiv.h:107: error: ‘d_minMarks’ was not declared in this scope
In file included from /usr/include/qwt/qwt_sclif.h:14,
from /usr/include/qwt/qwt_knob.h:15,
from ui_dialog.h:19,
from dialog.cpp:2:
/usr/include/qwt/qwt_scldraw.h: At global scope:
/usr/include/qwt/qwt_scldraw.h:105: error: ‘QWMatrix’ does not name a type
make: *** [dialog.o] Erreur 1
dmon@squeezeevo:~/src/qinstrumentation$
Je précise que j’ai rajouté les lignes LIBS et INCPATH pour obtenir ce résultat.
[code]dmon@squeezeevo:~/src/qinstrumentation$ cat qinstrumentation.pro
#-------------------------------------------------
Project created by QtCreator 2010-07-08T12:09:02
#-------------------------------------------------
TARGET = qinstrumentation
TEMPLATE = app
SOURCES += main.cpp
dialog.cpp
HEADERS += dialog.h
FORMS += dialog.ui
LIBS += lqwt
INCPATH += /usr/include/qwt
[/code]
On peut quand même remarquer que qtcreator intègre mal les fichiers d’en tête de qwt.
[code]dmon@squeezeevo:~/src/qinstrumentation$ cat ui_dialog.h
/********************************************************************************
** Form generated from reading UI file ‘dialog.ui’
**
** Created: Thu Jul 8 12:10:42 2010
** by: Qt User Interface Compiler version 4.6.3
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_DIALOG_H
#define UI_DIALOG_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QDialog>
#include <QtGui/QHeaderView>
#include “qwt_knob.h”
#include “qwt_wheel.h”
QT_BEGIN_NAMESPACE
class Ui_Dialog
{
public:
QwtKnob *Knob;
QwtWheel *Wheel;
void setupUi(QDialog *Dialog)
{
if (Dialog->objectName().isEmpty())
Dialog->setObjectName(QString::fromUtf8("Dialog"));
Dialog->resize(600, 400);
Knob = new QwtKnob(Dialog);
Knob->setObjectName(QString::fromUtf8("Knob"));
Knob->setGeometry(QRect(40, 100, 126, 126));
Wheel = new QwtWheel(Dialog);
Wheel->setObjectName(QString::fromUtf8("Wheel"));
Wheel->setGeometry(QRect(250, 140, 221, 81));
retranslateUi(Dialog);
QMetaObject::connectSlotsByName(Dialog);
} // setupUi
void retranslateUi(QDialog *Dialog)
{
Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0, QApplication::UnicodeUTF8));
} // retranslateUi
};
namespace Ui {
class Dialog: public Ui_Dialog {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_DIALOG_H
[/code]