1. 程式人生 > >QT tslib編譯錯誤原因

QT tslib編譯錯誤原因

在configure時候加入 -I /usr/local/tslib/include -L /usr/local/tslib/lib ,指定了tslib的存放的位置

The tslib functionality test failed!

You might need to modify the include and library search paths by editing

QMAKE_INCDIR and QMAKE_LIBDIR in

一般在編譯QT+tslib都會遇到此問題。網上的解決方法一般是修改mkspecs/qws/linux-arm-g++/qmake.conf檔案,在其中新增QMAKE_INCDIR和QMAKE_LIBDIR兩個變數。 另一種方法時直接到config.tests/unix/tslib中,修改tslib.pro,在其中新增LIB+=/usr/local/tslib/lib

原因是什麼?

configure在執行時,實際上會呼叫config.tests/unix/compile.tests指令碼,此指令碼檢查需要檢查的內容,具體執行過程我也不清楚,不過最終它會呼叫qmake命令為config.tests/unix/tslib/tslib.pro生成Makefile,然後會執行此Makefile,從而生成一個tslib的可執行檔案(對於Windows生成的是tslib.exe),compile.tests的指令碼最終檢查的就是tslib檔案是否存在,並且是否是可執行檔案,以此為依據來判斷tslib的配置是正確的。

當然,qmake.conf中新增QMAKE_INCDIR和QMAKE_LIBDIR也是可以達到此目的的,因為在為tslib.pro生成可執行檔案時,qmake將QMAKE_INCDIR和QMAKE_LIBDIR放入了Makefile中,這樣也能生成正確的可執行檔案,從而使得判定通過。