Linux系統下Qt4.8.2環境搭建
參考文章:https://www.linuxidc.com/Linux/2013-07/87576.htm
參考博客:https://blog.csdn.net/qq_22716879/article/details/51819184
一.安裝G++環境
sudo apt-get install build-essential
另外的一些相關環境。如果不安裝,一些qt的組件是無法正常編譯的,例如openGL
sudo apt-get install libx11-devlibxau-dev libxaw7-dev libxcb1-dev libxcomposite-dev libxcursor-devlibxdamage-dev libxdmcp-dev
sudo apt-get install libxext-dev libxfixes-devlibxfont-dev libxft-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-devlibxmuu-dev
sudo apt-get install libxpm-dev libxrandr-devlibxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev
sudo apt-get install libglib2.0-dev
sudo apt-get install libssl-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libcups2-dev
sudo apt-get install libgl1-mesa-devlibglu1-mesa-dev
sudo apt-get install libgstreamer0.10-dev
二.解壓代碼
tar zxvf qt-everywhere-opensource-src-4.8.2.tar.gz
解壓完進入解壓後的源代碼文件夾
三.執行./configure生成makefile
./configure -prefix /usr/local/Qt-4.8.2
(上面指定的這個目錄/usr/local/Qt-4.8.2 ,就是make install 後的安裝目錄)
下面出現對話框選擇open source edition.這是自由版。輸入yes接受協議。
(1)如果你的機器各種庫文件完整,經過一小會,配置完成,會出現以下信息
Qt is now configured forbuilding ,just run 'make'
Once everything is built , youmust run 'make install'
Qt will be installed into/usr/local/Qt-4.8.2
To reconfigure ,run'make confclean' and 'configure'
說明Makefile文件生成成功
(2)如果出現以下信息
Basic XLib functionality test failed!
You might need to modify the include and librarysearch paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in/home/gcgily/qt-everywhere-opensource-src-4.8.4/mkspecs/linux-g++
還是老辦法,以不變應萬變。進config.test/x11/xlib執行make命令,看出錯信息
g++ -Wl,-O1 -o xlib xlib.o -L/usr/X11R6/lib -lXext -lX11 -lm
/usr/bin/ld: cannot find -lXext
看到了吧,g++在/usr/X11R6/lib下,找不到libXext.so呢。
其原因就在於需要安裝libX11的開發包,在Ubuntu/debian裏包名都是libX11-dev
根據以往的經驗,在./configure前主動裝好下面3個包,基本上就萬事大吉了
sudo apt-get install libX11-dev libXext-devlibXtst-dev
安裝所需到包後再重新./configure即可生成Makefile文件
如果出現:ProjectERROR: Package gstreamer-app-0.10 not found,則執行以下命令
apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev如果出現: g++: error: unrecognizedcommand line option ‘-fuse-ld=gold’
這是Qt的一個bug:https://bugs.webkit.org/show_bug.cgi?id=89312
在裝有gold linker的系統裏,編譯腳本會加入-fuse-ld=gold選項,但這個選項gcc是不支持的。解決辦法是移除該選項,找到文件src/3rdparty/webkit/Source/common.pri,屏蔽QMAKE_LFLAGS+=-fuse-ld=gold。
#
QMAKE_LFLAGS+=-fuse-ld=gold
四、編譯QT
執行make命令,需要2個小時。
五、安裝QT
運行sudo make install命令。需要幾分鐘時間,默認安裝到/usr/local/Qt-4.8.2. 運行/usr/local/Qt-4.5.3/bin/designer ,若能啓動QT,說明QT已經安裝好了。
六、設置環境變量
更改用戶環境變量
注:
1.username爲個人虛擬機用戶名
2.我的Qt實際安裝目錄爲/home/share/hitarget/qt-everywhere-opensource-src-4.8.2/bin, 沒有安裝到預期的/usr/local/Qt-4.8.2
3.下面按照我的實際安裝目錄情況進行設置
gedit /home/username/.bashrc
添加:
export QTDIR=/home/share/hitarget/qt-everywhere-opensource-src-4.8.2
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
注:不必要更改root環境變量,可能導致虛擬機崩潰
更改包括root用戶的環境變量
sudo gedit /etc/profile (此處profile文件要更改一下權限才能寫入)
添加:
export QTDIR=/home/share/hitarget/qt-everywhere-opensource-src-4.8.2
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
七、測試環境變量
重啓測試環境變量:
qmake -v
顯示版本信息:
QMake version 2.01a
Using Qt version 4.8.2 in /usr/local/Qt-4.8.2/lib
which qmake
顯示安裝位置信息:
/usr/local/Trolltech/Qt-4.8.2/bin/qmake
環境變量設置成功。
注:qmake -v的時候出現以下錯誤
qmake: could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’:No such file or directory
原因:qtchooser默認選擇路徑中沒有指向qmake路徑
解決:
cd/usr/lib/x86_64-linux-gnu/qt-default/qtchooser
vim default.conf
將第一行中的/usr/lib/x86_64-linux-gnu/qt4/bin刪除(我僅註釋掉不行)
替代爲/home/share/hitarget/qt-everywhere-opensource-src-4.8.2/bin(我的qmake安裝路徑)
代碼:
如果需要在Qt中引用其他的包以及庫文件,則使用:
INCLUDEPATH += /usr/local/include/
INCLUDEPATH += /usr/local/include/Eigen
INCLUDEPATH += /usr/local/include/boost
INCLUDEPATH += /usr/local/include/CGAL
LIBS += -L/usr/local/lib/ -lgmp
LIBS += -L/usr/local/lib/ -lmpfr
其中LIBS參數中 -l後只能接特定某一個庫文件,且如果該文件爲 “libxxx.so“,則-l後只接"xxx"。