instala a biblioteca qtSerialPort

1

Eu quero instalar o qtserialport no preciso1-Ubuntu. Eu tenho o diretório de origem usando o git. Em seguida eu baixo lib-qt4-dev e qmake. Eu corri qmake. Funciona bem. mas, falha com o seguinte erro:

    cd src/ && make -f Makefile 
make[1]: Entering directory '/home/saman/5.0.1/serialPortSrc/qtserialport/src'
cd serialport/ && make -f Makefile 
make[2]: Entering directory '/home/saman/5.0.1/serialPortSrc/qtserialport/src/serialport'
make[2]: Nothing to be done for 'first'.
make[2]: Leaving directory '/home/saman/5.0.1/serialPortSrc/qtserialport/src/serialport'
make[1]: Leaving directory '/home/saman/5.0.1/serialPortSrc/qtserialport/src'
cd examples/ && make -f Makefile 
make[1]: Entering directory '/home/saman/5.0.1/serialPortSrc/qtserialport/examples'
cd cenumerator/ && make -f Makefile 
make[2]: Entering directory '/home/saman/5.0.1/serialPortSrc/qtserialport/examples/cenumerator'
g++ -Wl,-O1 -o cenumerator main.o    -L/usr/lib/i386-linux-gnu -lQtGui -lQtCore -lpthread 
main.o: In function 'QList<QSerialPortInfo>::free(QListData::Data*) [clone .isra.1]':
main.cpp:(.text+0x47): undefined reference to 'QSerialPortInfo::~QSerialPortInfo()'
main.o: In function 'QList<QSerialPortInfo>::detach_helper(int)':
main.cpp:(.text._ZN5QListI15QSerialPortInfoE13detach_helperEi[QList<QSerialPortInfo>::detach_helper(int)]+0x68): undefined reference to 'QSerialPortInfo::QSerialPortInfo(QSerialPortInfo const&)'
main.cpp:(.text._ZN5QListI15QSerialPortInfoE13detach_helperEi[QList<QSerialPortInfo>::detach_helper(int)]+0xc3): undefined reference to 'QSerialPortInfo::~QSerialPortInfo()'
main.o: In function 'main':
main.cpp:(.text.startup+0x5e): undefined reference to 'QSerialPortInfo::availablePorts()'
main.cpp:(.text.startup+0x10f): undefined reference to 'QSerialPortInfo::isBusy() const'
main.cpp:(.text.startup+0x16b): undefined reference to 'QSerialPortInfo::hasProductIdentifier() const'
main.cpp:(.text.startup+0x1bb): undefined reference to 'QSerialPortInfo::hasVendorIdentifier() const'
main.cpp:(.text.startup+0x212): undefined reference to 'QSerialPortInfo::manufacturer() const'
main.cpp:(.text.startup+0x24a): undefined reference to 'QSerialPortInfo::description() const'
main.cpp:(.text.startup+0x282): undefined reference to 'QSerialPortInfo::systemLocation() const'
main.cpp:(.text.startup+0x2ba): undefined reference to 'QSerialPortInfo::portName() const'
main.cpp:(.text.startup+0x644): undefined reference to 'QSerialPortInfo::productIdentifier() const'
main.cpp:(.text.startup+0x674): undefined reference to 'QSerialPortInfo::vendorIdentifier() const'
collect2: ld returned 1 exit status
make[2]: *** [cenumerator] Error 1
make[2]: Leaving directory '/home/saman/5.0.1/serialPortSrc/qtserialport/examples/cenumerator'
make[1]: *** [sub-cenumerator-make_default-ordered] Error 2
make[1]: Leaving directory '/home/saman/5.0.1/serialPortSrc/qtserialport/examples'
make: *** [sub-examples-make_default-ordered] Error 2

embora o make falhe, agora posso incluir o cabeçalho qtserialport no meu projeto. e sobre a falha, verifiquei main.cpp, ele inclui serialPortSrcInfo.so, esse arquivo .so já foi gerado quando o qmake foi chamado. como posso resolver o problema?

    
por Sam 24.04.2013 / 15:49

1 resposta

0

AFAIK é baseado no Qt5 +. Estou usando o Qtserial no meu projeto (pilotnavigator). Meu QTSDK 5+ está instalado localmente (não via apt). Estas são as instruções.

  • Copie a pasta qtplayground-qtserialport para uma pasta local (de preferência onde estão seus projetos do Qt). Exemplo: ~/yourqtprojectfolder/pilotnavigator/qtplayground-qtserialport
  • Crie uma pasta de compilação no mesmo nível chamada qtplayground-qtserialport-build na pasta pilotnavigator. Exemplo: ~/yourqtprojectfolder/pilotnavigator/qtplayground-qtserialport-build

Descubra onde o qmake mora. Normalmente ele está localizado na sua pasta Qt5, provavelmente ~ / Qt5x.x.x / 5.x.x / gcc_64 / bin

Abra um terminal Linux \

cd para a pasta qtplayground-qtserialport-build. Exemplo cd ~/yourqtprojectfolder/pilotnavigator/qtplayground-qtserialport-build

execute o qmake. Exemplo:

~/Qt5x.x.x/5.x.x/gcc_64/bin/qmake ~/yourqtprojectfolder/pilotnavigator/qtplayground-qtserialport/qtserialport.pro
make

(Se você receber um erro sobre o arquivo ausente libudev.h, você precisa instalar a biblioteca libudev-dev, por exemplo, sudo apt-get install libudev-dev )

sudo make install
    
por user166014 10.06.2013 / 11:21