Ciao a tutti,
Ho realizzato un applicazione con le qt su linux mint 13 a 64bit...e tutto funziona
A questo punto volevo creare una versione per i 32bit, quindi ho istallato su virtualbox mint 14 @32bit

- Installato qt creator
- Aperto il progetto e compilato

risultato: mi da questi errori

'close' was not declared in this scope
'read' was not declared in this scope
'write' was not declared in this scope

Questo il codice incriminato


codice:
#ifndef DEVICEMANAGER_H
#define DEVICEMANAGER_H

#include <QObject>
#include <QMessageBox>
#include <QString>
#include "datamanager.h"

class DeviceManager : public QObject{
    Q_OBJECT
public:
    explicit DeviceManager(QWidget *parent = 0, DataManager *d = 0){p = parent; d_manager=d;}
    virtual void openPort(const char *port)=0;
    ~DeviceManager(){}

protected:
    DataManager *d_manager;
    QWidget *p;
    int reading_errors;
public slots:
    virtual void t_readData() = 0;

signals:
    void update();
    void error();

};
#endif // DEVICEMANAGER_H
codice:
#include <stdio.h>
#include <fcntl.h>
#include <termios.h>
#include <errno.h>
#include <devicemanager.h>
#include <vector>
#include <QTime>
#include "exceptions.h"

class SerialPort : public DeviceManager{
    Q_OBJECT
public:
    explicit SerialPort(QWidget *parent = 0, DataManager *dm = 0);
    void openPort(const char *port);
    ~SerialPort();
    std::vector<int> values;
private:
    int fd;
    int nBlocks;

public slots:
    void t_readData();

};

#endif // SERIALPORT_H
Dentro openPort() e t_readData() utilizzo close(), read(), write, tipo:

codice:
SerialPort::~SerialPort(){
    if(this->fd  != -1); close(this->fd);
}

void SerialPort::t_readData(){

    int len = 1;
    uchar byte = 0;
    int count = 0;
    ushort iValue =0;
    uchar *pValue = (uchar*)&iValue;

    int pIndex = 0;
    int vIndex = 0;

    double values[N_PARAMS+1];
    double max[N_PARAMS+1];
    double min[N_PARAMS+1];
    QTime t;

    if(this->fd == -1) return;
    tcflush(this->fd, TCIFLUSH);

    len = write(this->fd, "\xAA", sizeof(char));

    ....

}
Qualcuno sa il motivo di questo ?