亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux怎么編譯qt

發布時間:2022-01-26 17:38:31 來源:億速云 閱讀:172 作者:iii 欄目:開發技術

這篇文章主要介紹了Linux怎么編譯qt的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Linux怎么編譯qt文章都會有所收獲,下面我們一起來看看吧。

Linux怎么編譯qt

首先下載源碼包qt-everywhere-opensource-src-5.6.0.7z 然后解壓

 7z x -o/home/o/qt-src/qt-opensource-src-5.6.0 qt-everywhere-opensource-src-5.6.0.7z
 
 cd /home/o/qt-src/qt-opensource-src-5.6.0

我這里解壓到/home/o/qt-src/qt-opensource-src-5.6.0中,解壓后進入這個目錄。

configure生成makefile

先使用./configure --help來看看都有哪些參數,這里就不貼命令輸出結果了,直接把選項都翻譯出來

安裝選項

選項作用
-prefix 指定部署目錄(默認 /usr/local/Qt-5.6.0)
-extprefix 安裝目錄(默認 SYSROOT/PREFIX)
-hostprefix [dir]運行在這個主機上的構建工具的安裝目錄,如果不給定,使用當前目錄. (默認 EXTPREFIX)

你可以用這些來改變安裝的布局。請注意,所有目錄除sysconfdir外,其他的應位于-prefix/ hostprefix下

選項作用
-bindir 用戶可執行文件將安裝到這個目錄(默認 PREFIX/bin)
-headerdir 頭文件安裝目錄(默認 PREFIX/include)
-libdir 庫文件安裝目錄(默認 PREFIX/lib)
-archdatadir QT相關的數據將被安裝到(默認 PREFIX)
-plugindir 插件安裝目錄(默認 ARCHDATADIR/plugins)
-libexecdir 程序的可執行文件安裝目錄(默認 ARCHDATADIR/libexec, ARCHDATADIR/bin for MinGW)
-importdir 導入QML1安裝目錄(默認 ARCHDATADIR/imports)
-qmldir 導入QML2安裝目錄(默認 ARCHDATADIR/qml)
-datadir QT獨立的數據安裝目錄(default PREFIX)
-docdir 文檔安裝目錄(default DATADIR/doc)
-translationdir Qt程序的翻譯數據安裝目錄(default DATADIR/translations)
-sysconfdir 設置使用QT程序的搜尋目錄(default PREFIX/etc/xdg)
-examplesdir 示例文件安裝目錄(default PREFIX/examples)
-testsdir 測試文件安裝目錄(default PREFIX/tests)
-hostbindir 主機可執行文件安裝目錄(default HOSTPREFIX/bin)
-hostlibdir 主機庫文件安裝目錄(default HOSTPREFIX/lib)
-hostdatadir qmake使用數據安裝目錄(default HOSTPREFIX)

Configure選項

下表中第一列中的*表示默認并可行的。+表示默認,但需要進行評估(檢測),評估通過才可接受。


選項作用
*-release編譯和鏈接Qt的release版本

-debug編譯和鏈接debug版本

-debug-and-release編譯和鏈接release和debug兩個版本(僅MAC)

-force-debug-info為release構建創建符號鏈接

-developer-buildQt開發者編譯和鏈接選項(包括自動測試/輸出)
*-no-optimized-tools即使在調試版本中,也不構建優化的主機工具

-optimized-tools構建優化的主機工具,即使在調試版本

-opensource編譯和鏈接Qt開源版本

-commercial編譯和鏈接的Qt商業版

-confirm-license自動確認許可證(使用開源或是商業)

-c++std 編譯QT使用的C++標準 (c++98, c++11, c++14, c++1z) 默認: 最高支持版本
*-shared創建并使用Qt共享庫.

-static創建并使用QT靜態庫

-no-largefile禁用大文件支持
+-largefile啟用QT訪問大于4 GB的文件功能

-no-accessibility不編譯的可訪問性支持 禁用訪問不推薦,它將破壞QStyle并且可能影響QT構建  這個選項啟用將創建一個源不兼容版本的QT,這是不支持
+-accessibility編譯訪問支持.

-no-sql-完全禁用SQL  .

-qt-sql-在 Qt SQL 模塊啟用SQL ,默認是不啟用的.

-plugin-sql-啟用SQL作為一個插件在運行時鏈接  的可能值為:  [ db2 ibase mysql oci odbc psql sqlite sqlite2 tds ]

-system-sqlite利用操作系統SQLite

-no-qml-debug不構建在QML調試支持
+-qml-debug構建QML調試支持

-platform target構建的目標操作系統和編譯器(默認檢測主機系統) 讀readme文件獲取支持的操作系統和編譯器列表

-no-sse2編譯不要使用SSE2指令

-no-sse3編譯不要使用SSE3指令

-no-ssse3編譯不要使用SSSE3指令

-no-sse4.1編譯不要使用SSE4.1指令

-no-sse4.2編譯不要使用SSE4.2指令

-no-avx編譯不要使用AVX指令

-no-avx2編譯不要使用AVX2指令

-no-mips_dsp編譯不要使用MIPS DSP指令

-no-mips_dspr2編譯不要使用MIPS DSP Rev2指令

-qtnamespace 把所有的Qt庫代碼放入namespace{...}

-qtlibinfix 重命名索引libQt*.so為libQt*.so

-testcocoonInstrument Qt with the TestCocoon code coverage tool.

-gcovInstrument Qt with the GCov code coverage tool.

-D 顯示的添加一個宏定義到預處理器

-I 顯示的添加一個包含路徑

-L 顯示添加一個庫路徑
+-pkg-config使用pkg-config檢測包括庫路徑。默認情況下,配置決定是否使用pkg-config或不具有啟發式如檢查環境變量。

-no-pkg-config禁用pkg-config支持

-force-pkg-config強制使用pkg-config (跳過pkg-config可用性啟發式檢測).

-help, -h顯示幫助信息.

第三方庫:


選項作用

-qt-zlib使用QT自帶zlib庫
+-system-zlib使用操作系統自帶的zlib庫。 http://www.gzip.org/zlib

-no-mtdev不要編譯mtdev支持  mtdev包含了應用程序對多點觸摸協議的支持
+-mtdev啟用mtdev的支持.
+-no-journald不要把日志輸出到journald.  Journald是為Linux服務器打造的新系統日志方式

-journald日志輸出到journald
+-no-syslog不要輸出日志到syslog.

-syslog輸出日志到syslog.

-no-gif不要編譯GIF讀取支持

-no-libpng不要編譯PNG支持

-qt-libpng使用Qt自帶的libpng
+-system-libpng使用操作系統自帶的libpng  http://www.libpng.org/pub/png

-no-libjpeg不要編譯JPEG支持.

-qt-libjpeg使用QT自帶的libjpeg.
+-system-libjpeg使用系統自帶的 libjpeg  http://www.ijg.org

-no-freetype不要編譯Freetype2的支持.

-qt-freetype使用QT自帶的libfreetype.
+-system-freetype使用系統自帶的libfreetype(假如存在) (啟用,如果-fontconfig選項開啟).  http://www.freetype.org

-no-harfbuzz不要編譯HarfBuzz-NG 支持.
*-qt-harfbuzz使用QT自帶的HarfBuzz-NG 去進行文本構形. 仍然可以通過設置QT_HARFBUZZ 環境變量到”old”來禁用.

-system-harfbuzz使用系統自帶的HarfBuzz-NG區進行文本構形.仍然可以通過設置QT_HARFBUZZ 環境變量到”old”來禁用  http://www.harfbuzz.org

-no-openssl不要編譯OpenSSL的支持

-openssl啟用運行時OpenSSL支持.

-openssl-linked啟用并鏈接OpenSSL支持

-no-libproxy不要編譯libproxy的支持
+-libproxy使用操作系統自帶的libproxy.

-qt-pcre使用QT自帶的PCRE library.
+-system-pcre使用操作系統自帶的PCRE library

-qt-xcb使用QT自帶的xcb-libraries. (libxcb.so將仍然使用操作系統自帶的).
+-system-xcb使用操作吸引自帶的xcb- libraries .

-xkb-config-root設置默認的XKB config root. 這個選項僅與-qt-xkbcommon-x11一起使用.

-qt-xkbcommon-x11在構建xcb中使用QT自帶的xkbcommon library .
+-system-xkbcommon-x11在構建xcb中使用操作系統自帶的 xkbcommon library.

-no-xkbcommon-evdev當編譯libinput支持時,不使用X-less xkbcommon.
*-xkbcommon-evdev當編譯libinput支持時,使用X-less xkbcommon.

-no-xinput2不要編譯XInput2的支持.
*-xinput2編譯XInput2支持.

-no-xcb-xlib不要編譯Xcb-Xlib支持.
*-xcb-xlib編譯 Xcb-Xlib支持.

-no-glib不要編譯 Glib 支持.
+-glib編譯 Glib 支持.

-no-pulseaudio不要編譯PulseAudio 支持.
+-pulseaudio編譯 PulseAudio 支持.

-no-alsa不要編譯 ALSA 支持.
+-alsa編譯 ALSA 支持.

-no-gtkstyle不要編譯GTK theme 支持.
+-gtkstyle編譯 GTK theme 支持.

附加選項:


選項作用

-make 在make時添加要構建的組件. (默認為:libs tools examples

-nomake 在構建時排除組件

-skip 排除整個模塊的建立

-no-compile-examples僅安裝examples的源碼,不要編譯它.

-no-gui不要構建Qt GUI模塊和依賴.
+-gui構建Qt GUI 模塊和依賴.

-no-widgets不要構建Qt Widgets 模塊和依賴.
+-widgets構建 Qt Widgets模塊和依賴

-R 顯示添加一個運行時庫的路徑去構建Qt libraries.

-l 顯示添加一個library.

-no-rpath不使用庫安裝路徑作為一個運行時庫路徑  在蘋果的平臺上,這意味著使用絕對安裝名稱(基于在libdir)動態庫和框架。
+-rpath鏈接 Qt 庫和可執行文件使用庫安裝路徑作為運行時庫路徑。相當于-R install_libpath

-continue如果發生錯誤,盡量繼續。

-verbose, -v打印每個步驟的配置過程的詳細的信息。

-silent減少生成輸出,這樣可以更容易看到警告和錯誤。

-no-nis不要編譯NIS 支持.
*-nis編譯 NIS 支持.

-no-cups不要編譯CUPS支持.
*-cups編譯CUPS支持. 要求 cups/cups.h 和libcups.so.2.

-no-iconv不編譯對 iconv(3) 的支持。
*-iconv編譯對 iconv(3) 的支持。

-no-evdev不編譯對 evdev 的支持。
*-evdev編譯對 evdev 的支持。

-no-tslib不編譯對 tslib 的支持  tslib是對觸屏的支持
*-tslib編譯對 tslib 的支持.

-no-icu不編譯對 ICU libraries 的支持.  這是IBM發布的字符集編碼轉換庫
+-icu編譯對 ICU libraries 的支持.

-no-fontconfig不編譯系統中的FontConfig支持
+-fontconfig編譯系統中的FontConfig支持

-no-strip不對二進制文件和庫的使用strip去除不需要的符號.
*-strip在安裝時對二進制文件和庫的使用strip去除不需要的符號
*-no-pch不使用預編譯的頭支持.

-pch使用預編譯的頭支持.
*-no-ltcg不使用鏈接時代碼生成

-ltcg使用鏈接時代碼生成.

-no-dbus不要編譯Qt D-Bus 模塊.
+-dbus-linked編譯Qt D-Bus模塊并鏈接到libdbus-1.

-dbus-runtime編譯Qt D-Bus模塊并動態加載libdbus-1.

-reduce-relocations減少通過額外的鏈接器優化庫的重加載  (僅qt/X11 和Qt/linux嵌入式 ;實驗性的;需要 GNU ld > = 2.18)

-no-use-gold-linker不要使用GNU gold linker進行鏈接.
+-use-gold-linker使用GNU gold linker進行鏈接.

-force-asserts強制啟用Q_ASSERT,即使在release構建中.

-sanitize [address/thread/memory/undefined]啟用指定編譯器的sanitizer.

-device 跨平臺編譯設備 (試驗性)

-device-option 添加device mkspec的device選項 (試驗性)
*-no-separate-debug-info不將調試信息存儲在一個單獨的文件

-separate-debug-info將調試信息到一個單獨的文件

-no-xcb不要編譯Xcb (X protocol C-language Binding) 支持.
*-xcb編譯 Xcb 支持.

-no-eglfs不要編譯EGLFS (EGL Full Screen/Single Surface) 支持.
*-eglfs編譯 EGLFS 支持.

-no-kms不要編譯KMS的后端.
*-kms編譯 KMS的后端.

-no-gbm不要編譯 GBM 的后端.
*-gbm編譯 GBM的后端.

-no-directfb不要編譯 DirectFB 支持.
*-directfb編譯 DirectFB 支持.

-no-linuxfb不要編譯Linux Framebuffer 支持.
*-linuxfb編譯 Linux Framebuffer 支持.
*-no-mirclient不要編譯 Mir client 支持.

-mirclient編譯 Mir client 支持.

-qpa 設置默認的QPA 平臺 (示例 xcb, cocoa, windows).

-xplatform target指定目標平臺(在跨平臺編譯時)

-sysroot 設置為目標編譯器和 qmake 的 sysroot 并且也設置 pkg-confing路徑.

-no-gcc-sysroot當使用-sysroot時, 它禁用將–sysroot傳遞到編譯器

-no-feature-中的不編譯.

-feature-編譯中的.  可用的功能介紹在src/corelib/global/qfeatures.txt

-qconfig local使用src/corelib/global/qconfig-local.h ,而不是默認的(全部).

-qreal [double/float]為qreal指定類型.默認值是double。請注意,更改此標志影響二進制兼容性。

-no-opengl禁用OpenGL支持.

-opengl 啟用 OpenGL 支持. 不帶參數時,這將會嘗試自動檢測的 OpenGL ES 2.0 和更高版本,或常規的桌面版OpenGL.  使用 es2 的將替代自動檢測

-no-libinput禁用libinput支持.
*-libinput啟用libinput 支持.

-no-gstreamer禁用GStreamer支持.
+-gstreamer 啟用 GStreamer 支持。 不帶參數,這將會嘗試自動檢測 GStreamer 0.10 和 1.0。GStreamer 1.0 是默認使用的可用時。使用 0.10 或 1.0 來覆蓋自動檢測。
*-no-system-proxies默認情況下,不使用系統網絡代理

-system-proxies默認情況下,使用系統網絡代理

-no-warnings-are-errorsMake 時把warnings當做正常

-warnings-are-errorsMake時把warnings 當做錯誤 (如果啟用了-developer-build)

QNX/Blackberry 選項:

選項作用
-no-slog2不編譯 slog2 的支持
-slog2編譯 slog2 的支持
-no-pps不編譯 pps 的支持
-pps編譯 pps 的支持
-no-imf不編譯 imf 的支持
-imf編譯 imf 的支持
-no-lgmon不編譯 lgmon 的支持
-lgmon編譯 lgmon 的支持

Android 選項:


選項作用

-android-sdk pathAndroid SDK 根目錄   (默認 $ANDROID_SDK_ROOT)

-android-ndk pathAndroid NDK 根目錄.   (默認 $ANDROID_NDK_ROOT)

-android-ndk-platform設置android 平臺版本   (默認 android-9)

-android-ndk-host設置android NDK 主機類型 (linux-x86, linux-x86_64, etc.)   (默認 $ANDROID_NDK_HOST)

-android-arch設置android 體系結構 (armeabi, armeabi-v7a, x86, mips, arm64-v8a, x86_64, mips64)   (默認 armeabi-v7a)

-android-toolchain-version設置android 工具鏈版本   (默認 4.9)

-no-android-style-assets不編譯 通過運行時設備自動提取style-assets的代碼.  設置這將使Android風格的行為不當,但與lgpl2.1許可兼容
*-android-style-assets編譯 通過運行時設備自動提取style-assets的代碼. 此選項將使Android平臺的lgpl2.1許可不兼容。

生成makefile

下面是我編譯的時候使用的選項。 -platform這一個選項是用于指定目標平臺的,可以看qt源碼目錄/qtbase/mkspecs/下的的目錄,就是QT支持的平臺。可以進這個目錄修改qmake.conf文件來指定編譯器和編譯選項。

 /home/o/qt-src/qt-opensource-src-5.6.0/qt-everywhere-opensource-src-5.6.0 [o@o-pc] [12:09]
 
 > ./configure -prefix /home/o/pragram/qt_5.6.0_gcc5.2.1 -release -debug -opensource -c++std c++11 -static -qt-sql-mysql -qt-sql-sqlite -platform linux-g++-64  -qt-zlib -no-journald -qt-libpng -qt-libjpeg -openssl -opengl

下面是詢問是否查看開源協議或者直接接受的。直接yes通過就好。

 Type ‘3‘ to view the GNU Lesser General Public License version 3.
 
 Type ‘L‘ to view the Lesser GNU General Public License version 2.1.
 
 Type ‘yes‘ to accept this license offer.
 
 Type ‘no‘ to decline this license offer.
 
 
 
 Do you accept the terms of either license? yes
 
 ... ...
遇到鏈接檢查失敗的情況

這里給出一個示例,就是xcb庫檢查失敗。

 Running configuration tests (phase 1)...
 
 Done running configuration tests.
 
 Creating qmake...
 
 .Done.
 
 Running configuration tests (phase 2)...
 
 The test for linking against libxcb and support libraries failed!
 
  You might need to install dependency packages, or pass -qt-xcb.
 
  See src/plugins/platforms/xcb/README.

這個很好解決,按下libxcb-***-dev就是了。其他的庫檢查失敗也是一樣的。也可以通過-qt-xcb選項,使用Qt自帶的xcb庫。

生成makefile后進行編譯

configure成功后會出現如下提示,后面說讓你使用make進行編譯,make install進行安裝。“

Linux怎么編譯qt

   1 Build type:    linux-g++-64 (x86_64, CPU features: mmx sse sse2)
   2
   3 Build options:
   4   Configuration .......... accessibility accessibility-atspi-bridge alsa audio-backend avx avx2 c++11 clock-gettime clock-monotonic compile_examples concurrent dbus dbus-linked debug egl eglfs egl_x11 enable_new_dtags evdev eventfd fontconfig full-config getaddrinfo getifaddrs gif glib gstreamer-0.10 harfbuzz iconv icu inotify ipv6ifname jpeg kms large-config largefile libudev linuxfb medium-config minimal-config mremap nis opengl openssl png posix_fallocate precompile_header pulseaudio qpa qpa reduce_exports reduce_relocations rpath small-config sse2 sse3 sse4_1 sse4_2 ssse3 static system-freetype threadsafe-cloexec use_gold_linker xcb xcb-glx xcb-plugin xcb-render xcb-sm xcb-xlib xinput2 xkbcommon-evdev xkbcommon-qt xlib xrender zlib
   5   Build parts ............ libs tools examples
   6   Mode ................... debug
   7   Using sanitizer(s)...... none
   8   Using C++ standard ..... c++11
   9   Using gold linker....... yes
  10   Using new DTAGS ........ yes
  11   Using PCH .............. yes
  12   Using LTCG ............. no
  13   Target compiler supports:
  14     SSE2/SSE3/SSSE3 ...... yes/yes/yes
  15     SSE4.1/SSE4.2 ........ yes/yes
  16     AVX/AVX2 ............. yes/yes
  17
  18 Qt modules and options:
  19   Qt D-Bus ............... yes (linked to dbus-1)
  20   Qt Concurrent .......... yes
  21   Qt GUI ................. yes
  22   Qt Widgets ............. yes
  23   Large File ............. yes
  24   QML debugging .......... yes
  25   Use system proxies ..... no
  26
  27 Support enabled for:
  28   Accessibility .......... yes
  29   ALSA ................... yes
  30   CUPS ................... no
  31   Evdev .................. yes
  32   FontConfig ............. yes
  33   FreeType ............... yes (system library)
  34   Glib ................... yes
  35   GStreamer .............. yes (0.10)
  36   GTK theme .............. no
  37   HarfBuzz ............... yes (bundled copy)
  38   Iconv .................. yes
  39   ICU .................... yes
  40   Image formats:
  41     GIF .................. yes (in QtGui, using bundled copy)
  42     JPEG ................. yes (in QtGui, using bundled copy)
  43     PNG .................. yes (in QtGui, using bundled copy)
  44   libinput................ no
  45   Logging backends:
  46     journald ............... no
  47     syslog   ............... no
  48   mtdev .................. no
  49   Networking:
  50     getaddrinfo .......... yes
  51     getifaddrs ........... yes
  52     IPv6 ifname .......... yes
  53     libproxy.............. no
  54     OpenSSL .............. yes (loading libraries at run-time)
  55   NIS .................... yes
  56   OpenGL / OpenVG:
  57     EGL .................. yes
  58     OpenGL ............... desktop
  59     OpenVG ............... no
  60   PCRE ................... system
  61   pkg-config ............. yes
  62   PulseAudio ............. yes
  63   QPA backends:
  64     DirectFB ............. no
  65     EGLFS ................ yes
  66       EGLFS i.MX6 ........ no
  67       EGLFS i.MX6 Wayland. no
  68       EGLFS EGLDevice .... no
  69       EGLFS GBM .......... no
  70       EGLFS Mali ......... no
  71       EGLFS Raspberry Pi . no
  72       EGLFS X11 .......... yes
  73     LinuxFB .............. yes
  74     Mir client............ no
  75     XCB .................. yes (system library)
  76       EGL on X ........... yes
  77       GLX ................ yes
  78       MIT-SHM ............ yes
  79       Xcb-Xlib ........... yes
  80       Xcursor ............ yes (loaded at runtime)
  81       Xfixes ............. yes (loaded at runtime)
  82       Xi ................. no
  83       Xi2 ................ yes
  84       Xinerama ........... yes (loaded at runtime)
  85       Xrandr ............. yes (loaded at runtime)
  86       Xrender ............ yes
  87       XKB ................ yes
  88       XShape ............. yes
  89       XSync .............. yes
  90       XVideo ............. yes
  91   Session management ..... yes
  92   SQL drivers:
  93     DB2 .................. no
  94     InterBase ............ no
  95     MySQL ................ qt
  96     OCI .................. no
  97     ODBC ................. yes (plugin)
  98     PostgreSQL ........... yes (plugin)
  99     SQLite 2 ............. no
 100     SQLite ............... qt-qt
 101     TDS .................. no
 102   tslib .................. no
 103   udev ................... yes
 104   xkbcommon-x11........... yes (bundled copy, XKB config root: /usr/share/X11/xkb)
 105   xkbcommon-evdev......... yes
 106   zlib ................... yes (bundled copy)
 107
 108
 109 WARNING: Using static linking will disable the use of dynamically
 110 loaded plugins. Make sure to import all needed static plugins,
 111 or compile needed modules into the library.
 112 Info: creating super cache file /home/o/qt-src/qt-opensource-src-5.6.0/qt-everywhere-opensource-src-5.6.0/.qmake.super
 113
 114 Qt is now configured for building. Just run ‘make‘.
 115 Once everything is built, you must run ‘make install‘.
 116 Qt will be installed into /home/o/pragram/qt_5.6.0_gcc5.2.1
 117
 118 Prior to reconfiguration, make sure you remove any leftovers from
 119 the previous build.

configure成功提示

關于“Linux怎么編譯qt”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Linux怎么編譯qt”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南靖县| 城口县| 财经| 巴里| 石屏县| 长宁区| 额尔古纳市| 南京市| 曲周县| 灵丘县| 曲松县| 平顶山市| 玉溪市| 广河县| 酒泉市| 桦南县| 南充市| 灌南县| 巴林左旗| 阿拉善右旗| 大竹县| 隆林| 吴旗县| 福安市| 同德县| 安溪县| 浦城县| 红原县| 南澳县| 连南| 夹江县| 固始县| 大英县| 小金县| 北碚区| 纳雍县| 遂川县| 宿松县| 宁蒗| 龙山县| 大丰市|