最近在使用QT開發動態庫,里面集成了一些QT5的資源,需要使用QT5的環境,并且需要靜態編譯,以免移植或者在其他環境部署的時候出現各種各樣的問題。
我編譯了QT5.3.2的原始碼包,使用的是靜態編譯方式(./configure -release -static -qt-xcb)。因為之前用過4.7.2版本,流程還是懂的。但是發現使用Qtcreator,生成不了.so檔案,只是自動生成了.a檔案。我看了一下編譯輸出日志和makefile檔案,確實有點問題,可能是qt5的bug。(在之前使用的4.7.2就沒有問題)。很奇怪!
后來我干脆又編譯了一個Qt的非靜態版本(./configure -qt-xcb)。使用Qtcreator在非靜態編譯的環境生成了正確的makefile,然后再拿到靜態編譯的環境下編譯,終于生成了動態庫.so檔案,大概16-17M。
這個庫檔案,在使用的程序中,會報這個錯誤:
This application failed to start because it could not find or load the Qt platform plugin "xcb".
Reinstalling the application may fix this problem
這下可難壞我了,我看網上人說缺少libqlinuxfb.so,libqminimal.so,libqoffscreen.so,libqxcb.so這4個檔案,我把這4個檔案靜態鏈接進去也不行。ldd也沒看到缺少什么依賴庫。
望請大神指點,謝謝!
1、QT5的靜態編譯環境為什么不能使用Qtcreator正常生成.so動態庫檔案?
2、怎樣解決動態庫報缺少xcb插件的問題?
uj5u.com熱心網友回復:
樓主問題解決了么。我在發布的時候也發現這個情況,庫什么的都添加了,還加了pluginsuj5u.com熱心網友回復:
樓主,我想問一下,我用qt的原始碼編譯xcb庫。執行./configure -qt-xcb就報錯了,想知道你是怎么解決的?
報錯資訊:
Creating qmake...
gmake: Nothing to be done for 'first'.
Running configuration tests...
The test for linking against libxcb failed!
You might need to install dependency packages for libxcb.
See src/plugins/platforms/xcb/README.
uj5u.com熱心網友回復:
可以試試設定export QT_QPA_PLATFORM=xcb,看看行不。轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/129127.html
標籤:Qt
上一篇:爬蟲高手求助
