установите qtSerialPort библиотеку

Я хочу установить qtserialport в precise1-Ubuntu. Я получил исходный каталог с помощью мерзавца. затем я загружаю lib-qt4-dev и qmake. Я выполнил qmake., он хорошо работает. но, сделайте сбои со следующей ошибкой:

    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

хотя делают сбои, я могу теперь включать qtserialport заголовок в свой проект. и об отказе, я проверил main.cpp, он включает serialPortSrcInfo.so, этот .so файл был уже сгенерирован, когда qmake назвали. как я могу решить проблему?

2
задан 24 April 2013 в 17:49

1 ответ

AFAIK основан на Qt5 +. Я использую Qtserial в своем проекте (pilotnavigator). Мой QTSDK 5+ установлен локально (не через apt). Это инструкции.

  • Скопируйте папку qtplayground-qtserialport в локальную папку (предпочтительно там, где находятся ваши проекты Qt). Пример: ~/yourqtprojectfolder/pilotnavigator/qtplayground-qtserialport
  • Создайте папку сборки того же уровня, которая называется qtplayground-qtserialport-build, в папке pilotnavigator. Пример: ~/yourqtprojectfolder/pilotnavigator/qtplayground-qtserialport-build

Узнайте, где живет qmake. Обычно он находится в вашей папке Qt5, вероятно, ~ / Qt5x.x.x / 5.x.x / gcc_64 / bin

Откройте компакт-диск Linux Terminal \

в папку qtplayground-qtserialport-build. Пример cd ~/yourqtprojectfolder/pilotnavigator/qtplayground-qtserialport-build

запустить qmake. Пример:

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

(Если вы получаете ошибку, касающуюся отсутствующего файла libudev.h, вам необходимо установить библиотеку libudev-dev, например sudo apt-get install libudev-dev)

sudo make install
0
ответ дан 24 April 2013 в 17:49

Другие вопросы по тегам:

Похожие вопросы: