首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装qtSerialPort库

安装qtSerialPort库
EN

Ask Ubuntu用户
提问于 2013-04-24 13:49:25
回答 1查看 5.2K关注 0票数 3

我想在Preise1-Ubuntu中安装qtserialport。我用git获得了源目录。接下来,我下载lib-qt4-dev和qmake。我做了qmake。效果很好。但是,make失败并有以下错误:

代码语言:javascript
复制
    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

虽然make失败,但我现在可以将qtserialport头包含到我的项目中。关于故障,我检查了main.cpp,它包括serialPortSrcInfo.so,这个.so文件已经在qmake被调用时生成了。我怎样才能解决这个问题?

EN

回答 1

Ask Ubuntu用户

发布于 2013-06-10 09:21:49

AFAIK是基于Qt5+的。我在我的项目(领航员)中使用Qtserial。我的QTSDK 5+是本地安装的(不是通过apt)。这是说明。

  • 将qt游乐场-qtserialport文件夹复制到本地文件夹(最好是Qt项目所在的地方)。示例:~/yourqtprojectfolder/pilotnavigator/qtplayground-qtserialport
  • 在同一个级别创建一个名为qt游乐场-qtserialport build in pilotnavigator文件夹的构建文件夹。示例:~/yourqtprojectfolder/pilotnavigator/qtplayground-qtserialport-build

找出qmake住在哪里。它位于您的Qt5文件夹中,可能是~/Qt5x.x.x/5.x.x/gcc_64/bin

打开Linux终端\

cd到qt游乐场-qtserialport build文件夹。示例cd ~/yourqtprojectfolder/pilotnavigator/qtplayground-qtserialport-build

运行qmake。示例:

代码语言:javascript
复制
~/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)

代码语言:javascript
复制
sudo make install
票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/284952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档