A13 Olinuxino debian QT4.8.5

Started by mimi1962, May 12, 2014, 12:20:30 AM

Previous topic - Next topic

mimi1962

hello

i was compiled qt with the method of nick guthrie with this ./configure (i use the video vga with gnome-core)

./configure -v -opensource -confirm-license -prefix /usr/local/qt485 -embedded arm -xplatform qws/linux-arm-g++ -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-cups -no-largefile -no-accessibility -no-openssl -no-gtkstyle -qt-mouse-pc -qt-mouse-linuxtp -qt-mouse-linuxinput -plugin-mouse-linuxtp -plugin-mouse-pc -fast -little-endian -host-big-endian -no-pch -no-sql-ibase -no-sql-odbc -no-sql-psql -no-webkit -no-qt3support -nomake examples -nomake demos -nomake docs -nomake translations -qt-mouse-tslib

my files

//*********************************************************************
// Fichier : gpio.cpp
// Classe : gpio
//*********************************************************************

#include "gpio.h"
#include "ui_gpio.h"

gpio::gpio( QWidget *parent) :
QMainWindow(parent),
ui(new Ui::gpio)
{
    ui->setupUi(this);
}


gpio::~gpio()
{

}


void gpio::on_Inverser_clicked()
{

}

/********************************************************************************
** Form generated from reading UI file 'gpioqq3747.ui'
**
** Created: Sun May 11 15:04:32 2014
**      by: Qt User Interface Compiler version 4.8.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

#ifndef GPIOQQ3747_H
#define GPIOQQ3747_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QHeaderView>
#include <QtGui/QLineEdit>
#include <QtGui/QMainWindow>
#include <QtGui/QMenuBar>
#include <QtGui/QPushButton>
#include <QtGui/QStatusBar>
#include <QtGui/QWidget>

QT_BEGIN_NAMESPACE

class Ui_gpio
{
public:
    QWidget *centralwidget;
    QPushButton *Inverser;
    QPushButton *CommandeUART;
    QLineEdit *Message;
    QMenuBar *menubar;
    QStatusBar *statusbar;

    void setupUi(QMainWindow *gpio)
    {
        if (gpio->objectName().isEmpty())
            gpio->setObjectName(QString::fromUtf8("gpio"));
        gpio->resize(540, 329);
        centralwidget = new QWidget(gpio);
        centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
        Inverser = new QPushButton(centralwidget);
        Inverser->setObjectName(QString::fromUtf8("Inverser"));
        Inverser->setGeometry(QRect(110, 60, 98, 27));
        CommandeUART = new QPushButton(centralwidget);
        CommandeUART->setObjectName(QString::fromUtf8("CommandeUART"));
        CommandeUART->setGeometry(QRect(260, 60, 98, 27));
        Message = new QLineEdit(centralwidget);
        Message->setObjectName(QString::fromUtf8("Message"));
        Message->setGeometry(QRect(120, 140, 271, 27));
        gpio->setCentralWidget(centralwidget);
        menubar = new QMenuBar(gpio);
        menubar->setObjectName(QString::fromUtf8("menubar"));
        menubar->setGeometry(QRect(0, 0, 540, 25));
        gpio->setMenuBar(menubar);
        statusbar = new QStatusBar(gpio);
        statusbar->setObjectName(QString::fromUtf8("statusbar"));
        gpio->setStatusBar(statusbar);

        retranslateUi(gpio);

        QMetaObject::connectSlotsByName(gpio);
    } // setupUi

    void retranslateUi(QMainWindow *gpio)
    {
        gpio->setWindowTitle(QApplication::translate("gpio", "MainWindow", 0, QApplication::UnicodeUTF8));
        Inverser->setText(QApplication::translate("gpio", "Inverser_Led", 0, QApplication::UnicodeUTF8));
        CommandeUART->setText(QApplication::translate("gpio", "Envoi_UART", 0, QApplication::UnicodeUTF8));
    } // retranslateUi

};

namespace Ui {
    class gpio: public Ui_gpio {};
} // namespace Ui

QT_END_NAMESPACE




//*********************************************************************
// Fichier : gpio.h
// Classe : gpio
//*********************************************************************

#ifndef GPIO_H
#define GPIO_H
#include <QMainWindow>
#include "ui_gpio.h"
#include <QApplication>

namespace Ui {
class gpio;
}


class gpio : public QMainWindow
{
    Q_OBJECT
    public:
        gpio( QWidget *parent=0);
        ~gpio();
    public slots:
   void on_Inverser_clicked();
   //void on_CommadeUART_clicked();
private:
    Ui::gpio *ui;
};



#endif // GPIO_H


#include <QtGui/QApplication>
//#include <QWidget>
#include "gpio.h"


int main(int argc, char* argv[])
{
   QApplication app(argc, argv);
    gpio w;
   // le widget sera visible
   w.show();

    return app.exec();
}


j'utilise le Makefile suivant:

##############################################################################
# Makefile pour generer :
# Projet :
# Date :
# Commande : make
#############################################################################

# Commandes Qt
QTDIR = /usr/local/qt485
MOC      = $(QTDIR)/bin/moc
UIC      = $(QTDIR)/bin/uic
RCC    = $(QTDIR)/bin/rcc

# Qt libs
QTLIBS    = $(QTDIR)/lib

# Dossier pour les fichiers sources
SRCDIR = Classes

# Dossier pour les compilations
BUILDDIR = build

# Dossier pour les fichiers objets (.o)
OBJDIR = $(BUILDDIR)/.obj

# Dossier pour les exécutables de test unitaire
UNITTESTDIR = $(BUILDDIR)/UnitTest
UNITTESTBIN = $(UNITTESTDIR)/bin

# Dossier pour les exécutable des releases
RELEASEDIR = $(BUILDDIR)/Release
RELEASEBIN = $(RELEASEDIR)/bin

# Dossier de la documentation
DOCDIR = $(BUILDDIR)/html

# Dossier des moc (Qt)
MOCDIR = $(BUILDDIR)/.moc

# Dossier des ihm (Qt)
UIDIR = $(BUILDDIR)/.ui

# Dossier des ressources ihm (Qt)
RESOURCESDIR = Resources

# Options de compilation à ajouter à CFLAGS si nécessaire
SVNDEF = -D_SVN_=\"$(shell svnversion -n .)\"

DAYOFWEEKDEF = -D_DAYOFWEEK_=\"$(shell date +%a)\"
DAYDEF = -D_DAY_=\"$(shell date +%d)\"
MONTHDEF = -D_MONTH_=\"$(shell date +%m)\"
YEARDEF = -D_YEAR_=\"$(shell date +%y)\"
HOURDEF = -D_HOUR_=\"$(shell date +%H)\"
MINDEF = -D_MIN_=\"$(shell date +%M)\"

DEBUG_ON = -g
WARNING_ON = -Wall

CFLAGS = $(DEBUG_ON) $(WARNING_ON)

# Options de recherches des includes
INCLUDES =   -I /usr/local/include \
      -I $(QTDIR)/include \
      -I $(QTDIR)/include/QtCore \
      -I $(QTDIR)/include/QtGui


# Définitions à la compilation (ex -DDEBUG = #define DEBUG)
DEFINES =

# Options de linkage si necessaire (ex -lm)
LIBSTEST = -lcppunit -ldl $(QTLIBS)/libQtCore.so $(QTLIBS)/libQtGui.so
LIBS = $(QTLIBS)/libQtCore.so $(QTLIBS)/libQtGui.so

# Commande de compilation C++
CC = g++ $(CFLAGS) $(INCLUDES) $(DEFINES)

# Commande de compilation C
C = gcc $(CFLAGS) $(INCLUDES) $(DEFINES)

# Liste fichiers source
SRC = $(wildcard $(SRCDIR)/*.m)
HDR = $(wildcard $(SRCDIR)/*.h)

# On place ici les objets (.o) a linker dans les applications finales

# Classes MetaObject moc (Qt)
# MOC_SRC         = $(MOCDIR)/moc_MyClasseQOBJECT.cpp
MOC_SRC         = $(MOCDIR)/moc_gpio.cpp

# Fichiers de déclaration des classes IHM générées à partir de QtDesigner  (Qt)
#UI_HEADERS   =   $(SRCDIR)/ui_MyView.h
UI_HEADERS   =    $(SRCDIR)/ui_gpio.h

# Fichier ressources (Qt)
# QRC      =   $(UIDIR)/qrc_imageslib.cpp
QRC      =

# Objets IHM (Qt)
#UI_OBJECTS   =   $(OBJDIR)/qrc_imageslib.o \
#         $(OBJDIR)/gpio.o
UI_OBJECTS   = $(OBJDIR)/moc_gpio.o

# Classes auxiliaires
AUX_OBJECTS      =    $(OBJDIR)/gpio.o

# Classe de tesst unitaires
UNITTEST_OBJECTS   =    

RELEASE_OBJECTS      =       $(OBJDIR)/main.o

OBJECTS         =    $(AUX_OBJECTS) $(UNITTEST_OBJECTS) $(RELEASE_OBJECTS)

# On place ici les exécutables à générer (testsunitaires et release)
UNITTEST      =    

RELEASE         =   $(RELEASEBIN)/gpio

# On rajoute ici ce qui doit être généré
all : $(BUILDDIR) $(MOC_SRC) $(OBJECTS) $(RELEASE) $(UNITTEST)

# Cibles pour le nettoyage de la compilation
cleanall : clean

clean :
   @rm -f $(OBJDIR)/* $(DOCDIR)/*

# Cible pour l'enchaînement des tests unitaires (à venir)
tests:   

# Cible pour l'analyse du code source (à venir)
analyze :

# Cible pour la génération de la documentation du code
doc:
   doxygen ./Doxyfile

# Production des moc_xxx.o (Qt)
$(OBJDIR)/%.o : $(MOCDIR)/%.cpp
   $(CC) -c $< -o $@

# Production des qrcxxx.cpp (Qt)
$(UIDIR)/qrc_%.cpp :  $(RESOURCESDIR)/%.qrc
   $(RCC) -o $@ $<

# Production des ui_xxx.h (Qt)
$(SRCDIR)/ui_%.h : $(RESOURCESDIR)/%.ui
   $(UIC) -o $@ $<

# Production des .o ihm (sans .h : ex qrc)
$(OBJDIR)/%.o : $(UIDIR)/%.cpp
   $(CC) -c $< -o $@

# Production des .o ihm (Qt)
$(OBJDIR)/%.o : $(UIDIR)/%.cpp $(UIDIR)/%.h $(SRCDIR)/ui_%.h
   $(CC) -c $< -o $@

# Production des .o ihm (Qt)
$(OBJDIR)/%.o : $(UIDIR)/%.cpp $(UIDIR)/%.h
   $(CC) -c $< -o $@

# Production des moc_*.cpp (Qt)
$(MOCDIR)/moc_%.cpp : $(SRCDIR)/%.h
   $(MOC) -o $(MOCDIR)/moc_$*.cpp $(SRCDIR)/$*.h

# Production des moc_*.cpp ihm (Qt)
$(MOCDIR)/moc_%.cpp : $(UIDIR)/%.h
   $(MOC) -o $(MOCDIR)/moc_$*.cpp $<

# Production des .o (c++)
$(OBJDIR)/%.o :  $(SRCDIR)/%.cpp $(SRCDIR)/%.h
   $(CC) -c $< -o $@

# Production des .o si pas de .h (c++)
$(OBJDIR)/%.o :  $(SRCDIR)/%.cpp
   $(CC) -c $< -o $@

# Production des tests unitaires
$(UNITTESTBIN)/ExempleClasseAuxiliaireTesteur : $(AUX_OBJECTS) $(OBJDIR)/ExempleClasseAuxiliaireTesteur.o
   $(CC) $^  $(LIBSTEST) -o $@

# Production de la release
$(RELEASEBIN)/gpio : $(AUX_OBJECTS) $(UI_OBJECTS)  $(OBJDIR)/main.o
   $(CC) $^ $(LIBS) -o $@

# Création de l'arborescence pour le build
$(BUILDDIR):
   mkdir $@ && \
   mkdir $@/.obj && \
   mkdir $@/.moc && \
   mkdir $@/.ui && \
   mkdir $@/html && \
   mkdir $@/UnitTest && \
   mkdir $@/UnitTest/bin && \
   mkdir $@/Release && \
   mkdir $@/Release/bin && \
   mkdir $@/Release/configuration && \
   mkdir $@/Release/logs


the compile and the link are ok

but with i launch the application ./gpio i find this error

./gpio: symbol lookup error: ./gpio: undefined symbol: _ZN7QWidget8qwsEventEP8QWSEvent

best regards and thank you for your response

Michel Arnaud