静态编译,就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so或.lib)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。这样就可以发布单一文件的EXE程序了。



工具/原料



  • Qt库
  • Python
  • Perl
  • Ruby



安装Perl



  1. 1
    双击从官网下载的安装包进入安装界面

    python 调用静态链接库 python编译为静态库_c/c++


  2. 2
    安装时注意选择这两项

    python 调用静态链接库 python编译为静态库_python 调用静态链接库_02




安装Python



  1. 1
    双击从官网下载的安装包进入安装界面

    python 调用静态链接库 python编译为静态库_ruby_03


  2. 2
    安装完成后,需要将安装目录添加到系统环境变量Path中

    python 调用静态链接库 python编译为静态库_Qt_04




安装Ruby



  1. 1
    双击从官网下载的安装包进入安装界面

    python 调用静态链接库 python编译为静态库_c/c++_05


  2. 2
    注意选择这一项

    python 调用静态链接库 python编译为静态库_ruby_06




安装Qt



  1. 1
    方法一:从官网下载源码zip压缩包直接解压即可
  2. 2
    方法二:从官网下载对应编译器的安装包进行文件安装
  3. 3
    安装完成后,需要将安装目录添加到系统环境变量Path中

    python 调用静态链接库 python编译为静态库_ruby_07




静态编译Qt



  1. 1
    打开命令行

    python 调用静态链接库 python编译为静态库_c/c++_08

    python 调用静态链接库 python编译为静态库_Qt_09


  2. 2
    输入gcc -v命令查看gcc编译器是否正确;配置正确,如下图所示

    python 调用静态链接库 python编译为静态库_c/c++_10


  3. 3
    输入perl -v命令查看Perl解析器是否配置正确,配置正确显示如下图

    python 调用静态链接库 python编译为静态库_ruby_11


  4. 4
    输入python命令查看Python是否配置正确,正确显示如下图,按Ctrl+Z回车可以退出Python

    python 调用静态链接库 python编译为静态库_python_12


  5. 5
    切换到Qt源码目录,假设为D:\Qt
    命令为:
    D:
    cd D:\Qt
    上述路径可以根据自己的实际路径进行修改

    python 调用静态链接库 python编译为静态库_python 调用静态链接库_13


  6. 6 输入如下命令进行配置
configure.bat -confirm-license -opensource -platform win32-g++ -mp -release -static -prefix "C:\Qt\5.4.0_MinGW_static" -qt-sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit -skip qtwebengine

  1. 其中的"C:\Qt\5.4.0_MinGW_static"为生成的静态编译代码库的路径,可以根据自己的需求进行相应更改

    python 调用静态链接库 python编译为静态库_Qt_14

  2. 7
    配置完成如下图所示

    python 调用静态链接库 python编译为静态库_Qt_15


  3. 8
    输入以下命令进行编译
    mingw32-make
    过程较长,大约几小时
  4. 9
    输入以下命令进行安装
    mingw32-make install
    安装完成如下图所示

    python 调用静态链接库 python编译为静态库_python_16




配置Qt Creator



  1. 1
    添加上一部编译好的静态Qt版本
    Qt Creator -> Tools -> Options -> Build & Run -> Qt Versions,点击Add添加qmake,如图所示

    python 调用静态链接库 python编译为静态库_ruby_17

    python 调用静态链接库 python编译为静态库_c/c++_18


  2. 2
    添加完成,点击“Apply”

    python 调用静态链接库 python编译为静态库_Qt_19


  3. 3
    设置套件
    切换到“Kits”选项卡,点击“Add”如图进行配置,完成后点击OK退出设置

    python 调用静态链接库 python编译为静态库_python_20


  4. 4
    打开C:\Qt\5.4.0_MinGW_static\mkspecs\win32-g++\qmake.conf,找到QMAKE_LFLAGS和QMAKE_LFLAGS_DLL,将后面改成-static,如图所示

    python 调用静态链接库 python编译为静态库_python 调用静态链接库_21




如何使用静态编译库



  1. 1
    至此Qt5.4.0静态编译配置完成
  2. 2
    新建工程时选择静态编译的套件,如图所示

    python 调用静态链接库 python编译为静态库_Qt_22


  3. 3
    对工程进行编译时选择Release版本,如图所示

    python 调用静态链接库 python编译为静态库_Qt_23