美文网首页
Qt源码编译

Qt源码编译

作者: NullUser | 来源:发表于2024-08-26 11:33 被阅读0次

    前置条件

    更新apt数据库,确保获取到最新软件库

    sudo apt-get update
    

    安装依赖库

    https://doc.qt.io/qt-5/linux-requirements.html#platform-plugin-dependencies

    X11依赖

    sudo apt-get install libfontconfig1-dev
    sudo apt-get install libfreetype6-dev
    sudo apt-get install libx11-dev
    sudo apt-get install libx11-xcb-dev
    sudo apt-get install libxext-dev
    sudo apt-get install libxfixes-dev
    sudo apt-get install libxi-dev
    sudo apt-get install libxrender-dev
    sudo apt-get install libxcb1-dev
    sudo apt-get install libxcb-glx0-dev
    sudo apt-get install libxcb-keysyms1-dev
    sudo apt-get install libxcb-image0-dev
    sudo apt-get install libxcb-shm0-dev
    sudo apt-get install libxcb-icccm4-dev
    sudo apt-get install libxcb-sync-dev
    sudo apt-get install libxcb-xfixes0-dev
    sudo apt-get install libxcb-shape0-dev
    sudo apt-get install libxcb-randr0-dev
    sudo apt-get install libxcb-render-util0-dev
    sudo apt-get install libxcb-xinerama0-dev
    sudo apt-get install libxcb-composite0-dev
    sudo apt-get install libxkbcommon-dev
    sudo apt-get install libxkbcommon-x11-dev
    

    安装opengl库

    sudo apt-get install build-essential
    sudo apt-get install libgl1-mesa-dev
    sudo apt-get install libglu1-mesa-dev
    sudo apt-get install libegl1-mesa-dev
    sudo apt-get install freeglut3-dev
    

    安装OpenGL ES支持

    sudo apt-get install -y mesa-common-dev
    

    安装WebEngine依赖库

    #webengine
    sudo apt-get install python2
    #requires pkg-config to detect most of its dependencies.
    sudo apt-get install -y pkg-config
    sudo apt-get install libdbus-1-dev
    #If Qt was configured for xcb,the following pkg-config files are also required:
    

    安装GTK

    sudo apt-get install -y libgtk2.0-dev libgtk-3-dev
    

    安装常用库

    sudo apt-get install -y libudev-dev libasound2-dev libudev-dev libudev1
    

    安装多媒体库

    sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libx264-dev libopencv-dev
    

    安装网络库

    sudo apt-get install -y libssl-dev
    

    安装Perl

    sudo apt-get install -y perl
    

    安装ICU库

    如果你需要ICU支持(用于国际化等),可以安装ICU库

    sudo apt-get install -y libicu-dev
    

    安装Wayland相关库

    sudo apt-get install -y libwayland-dev
    

    安装QtPDF支持库

    sudo apt-get install gperf
    sudo apt-get install bison
    sudo apt-get install flex
    

    xcb选项

    -bundled-xcb-xinput 通常出现在与Qt编译相关的上下文中,特别是在使用Qt的源代码进行自定义编译时。这个选项与Qt的构建配置有关,特别是在涉及XCB(X C Binding)和XInput扩展时。

    解释

    1. XCB (X C Binding):•XCB 是一个低级别的C语言绑定库,用于与X Window System进行通信。它是Xlib的一个替代品,提供了更高效和更现代的API。•在Qt中,XCB是用于实现Qt图形系统与X Window System交互的基础。
    2. XInput:•XInput 是X Window System的一个扩展,用于增强输入设备的支持,例如多点触摸屏、轨迹球等。•Qt需要支持XInput扩展来处理这些设备的输入事件。
    3. -bundled:•当使用-bundled选项时,意味着Qt将使用捆绑(bundled)的库版本,而不是系统提供的版本。•这样做可以确保Qt使用的是经过验证的库版本,避免与系统库版本不兼容的问题。

    使用场景
    当你在编译Qt时,使用-bundled-xcb-xinput选项意味着Qt将使用捆绑的XCB和XInput库,而不是系统上可能已经安装的版本。这通常在以下情况下是有用的:

    • 解决依赖问题:如果你的系统上的XCB或XInput版本与Qt期望的版本不一致,可能会导致编译失败或运行时出现问题。
    • 一致性:使用捆绑的库可以确保Qt的所有依赖库版本一致,从而减少因版本差异带来的问题。
    • 独立性:使用捆绑的库可以让Qt的安装更加独立,不依赖于系统上的其他库。

    示例:假设你正在从源代码编译Qt,并且想要使用捆绑的XCB和XInput库,你可以使用以下命令:./configure -release -opensource -confirm-license -prefix /opt/qt5 -bundled-xcb-xinput
    make
    sudo make install
    sh这条命令会告诉Qt的configure脚本使用捆绑的XCB和XInput库,并进行编译和安装。总结-bundled-xcb-xinput是一个用于Qt编译配置的选项,用于指定使用捆绑的XCB和XInput库。这样做可以确保Qt使用的是经过验证的库版本,从而避免与系统库版本不兼容的问题,并提高Qt安装的一致性和独立性。

    编译Qt

    1. 解压Qt源码文件,进入源码目录。
    tar -xvf qt_src_5.xx.x.tar.xz
    
    1. 进入源码根目录
    cd qt_src_5.xx.x
    
    1. 运行configure脚本
    ./configure -qt-zlib -qt-freetype -qt-libpng -qt-libjpeg -qt-pcre -openssl-linked -bundled-xcb-xinput -release -prefix /opt/qt5
    

    可选项:

    • -qt-zlib使用Qt自带的库,而不是系统的。其余-qt-xxx同理。
    • -qt-freetype,使用Qt的字体后,将获取不到系统内置字体。
    • -release 编译release版本
    • -prefix指定安装路径
    • -openssl-linked,直接连接openssl,这意味着Qt在编译时会将OpenSSL库的二进制文件直接嵌入到Qt库中,这样Qt应用程序就可以直接使用这些OpenSSL库的功能,而不需要依赖系统上安装的OpenSSL库
    1. 执行make,开始编译,-j选项启用多核编译,加快编译速度
    make -j4
    
    1. 安装,将Qt安装到前面运行configure脚本时-prefix指定的目录
    make install
    

    相关文章

      网友评论

          本文标题:Qt源码编译

          本文链接:https://www.haomeiwen.com/subject/mphokjtx.html