2015-09-11 110 views
0

我使用debian,kernel 3.8運行BBB。我已經啓動並運行了Qt,我可以在它上面做一個簡單的hello世界程序。一切都很好。Qserialport在Beaglebone黑色

我的主機運行Ubuntu 12.04 32位。

我試圖安裝qserialport庫,但它給了我很多的傷心。我試過了以下wiki here

從命令行運行似乎很有前途,但我不知道如何解決我所看到的錯誤。當我成功運行qmake時,但是當運行make命令時,我遇到了錯誤:arm-linux-bnueabihf/bin/ld: cannot find -ludev

我在我的主機中安裝了libudev-dev,所以我不認爲這是問題所在。

關於什麼可能是問題或如何解決它的任何想法?

在此先感謝。

+0

首先,'libudev-dev'包含頭文件。而'-ludev'則是關於連接實際的'udev'庫('.so'或'.a'文件)。接下來,在與ARM工具鏈交叉編譯時(使用arm-linux-gnueabihf-toolchain),您應該提供爲相同體系結構(ARM)構建的上述庫,而不是您的主機PC。因此,您需要先爲ARM架構構建(或下載已經構建的)udev,然後將其「喂」到您的'qmake'文件或類似的東西。 –

+0

你已經看過其他Linux發行版嗎?一個選項是[Buildroot](http://buildroot.org/)。它提供[支持BBB](http://git.buildroot.net/buildroot/tree/configs/beaglebone_defconfig)和Qt4/5,包括QSerialPort支持。作爲替代選擇,您還可以使用Debian,debootstrap和[multi-arch](https://debian-handbook.info/browse/jessie/sect.manipulating-packages-with-dpkg.html#sect.multi -arch)方法。 – yegorich

回答

0

所以我想出瞭如何在上面的評論中向Sam大喊大叫。

我騙了一點,並將需要從Beaglebone Black中獲得的庫複製到主機上,並將它們放在包含所有交叉編譯的Qt庫的文件夾中。正如我後來發現的,我也需要使用tslib庫(我已經啓用Qt與觸摸屏支持)。

這些步驟使我至少可以完成串行端口庫的make命令。

然後,我使用sudo make install命令來安裝庫,在那裏沒有問題。

使用串口庫運行程序也會導致問題。我再次作弊並使用scp -r /opt/qt-arm/lib [email protected]:/usr/將我的整個交叉編譯的qt庫從我的主機複製到Beaglebone Black。複製該目錄讓我啓動並運行。