OK,最後我設法解決這個問題。 Qt在通過源代碼構建時有一些功能測試功能。如果主機上未安裝某些開發包,則測試將失敗並且該功能無法正常工作。在這種情況下,qt將使用虛擬後端,所以示例應用程序仍然可以編譯成OK並運行,但沒有任何實際用法。 (我已經列出了比需要更多的安裝,以防萬一)如果你使用的是藍牙,那麼你需要的軟件包包括:藍牙,藍牙,藍牙,藍牙,藍牙,藍牙,藍牙,藍牙,藍牙,藍牙,藍牙,藍牙,藍牙,藍牙, ,請確保將所有這些安裝在主機之前。
我已經做好了所有的準備工作後,我跑配置腳本生成的Makefile的Qt。這是配置腳本使用:
#!/bin/sh
./configure \
-v \
-prefix /opt/qt-5.7.0 \
-release \
-opensource \
-xplatform linux-arm-gnueabi-g++ \ # yes, I need to cross-compile
-qt-sql-sqlite \
-qt-zlib \
-qt-pcre \
-no-opengl \
-no-sse2 \
-no-openssl \
-qt-freetype \
-nomake examples \
-nomake tests \
-no-separate-debug-info \
-no-qml-debug \
-pkg-config \
-confirm-license
運行配置腳本後,你會得到下yourQtSourcePath/qtbase /箱/年的qmake可執行文件,那麼你就可以測試你的qtbluetooth功能被執行:
qtSourcePath/qtbase/bin/qmake qtSourcePath/qtconnectivity/qtconnectivity.pro
如果你看到這樣的:
Checking for bluez... yes
Checking for bluez_le... yes
Checking for linux_crypto_api... yes
,那麼你是好去,只是讓& & make install的整個Qt的源,qt藍牙現在可以正常工作。
編輯:
如果以任何方式,你無法通過藍牙測試(這是很可能的,當你需要交叉編譯,就像我的情況),我想出了一個解決方法。您仍然必須在make之前安裝所有必需的dev-packages,這次爲了通過藍牙功能測試,您可以使用您的系統內置的qmake(apt-get install qt5-qmake,NOT您生成的qmake通過運行配置腳本)來使用qtconnectivity.pro。這樣,您就可以通過藍牙功能測試併爲qtconnectivity模塊生成一個Makefile。
修改Makefile,更改QMAKE參數。在我而言,這是結果:
- QMAKE = /usr/lib/x86_64-linux-gnu/qt5/bin/qmake
+ QMAKE = /opt/qt-everywhere-opensource-src-5.7.0/qtbase/bin/qmake
然後,您可以交叉編譯通過使& &使安裝整個的Qt源。
我測試瞭解決方法,示例應用程序(heartRate服務器)現在可以正常工作。令人討厭的消息「qt.bluetooth:虛擬後端運行。Qt藍牙模塊無功能」消失了:)