Qt creator 如何设置静态编译

本文详细介绍了如何将Qt从默认的动态编译方式更改为静态编译方式,这对于需要独立发布应用程序而不想依赖大量动态库的情况非常有用。文章提供了具体的步骤,包括修改配置文件和使用特定命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址 http://blog.sina.com.cn/s/blog_6a83989c0100n6e5.html

 

Qt默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库:

1.将C:\Qt\2010.05\qt\mkspecs\win32-g++\qmake.conf文件中的QMAKE_LFLAGS  = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc

 改为

QMAKE_LFLAGS  = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc

2.在开始菜单里找到Qt Command Prompt并运行,输入命令:   configure -static -debug-and-release -no-exceptions  -L "C:\Qt\2010.05\qt\include" -L "C:\Qt\2010.05\qt\lib"

-L指定一下路径,防止用到vc的头文件

选择开源:O;选择license:y;

3.上一条命令运行成功后再输入命令:   mingw32-make sub-src

等1 ~3 小时可能就运行完了   完成后就ok了。。。

我的环境是windows qt2010.05

### 配置和执行静态编译 #### 准备工作 为了在 Qt Creator 中实现静态编译,需先获取并构建适合的 Qt 版本。通常情况下,官方提供的二进制版本是动态链接形式分发的,因此需要自行下载源码并按特定参数编译静态。 对于 Linux 平台而言,在开始之前应确保已安装必要的依赖项,比如 `g++` 编译器、`libgl1-mesa-dev` OpenGL 开发文件以及其他可能涉及的第三方头文件等[^1]。 #### 下载与配置 Qt 源代码 访问 Qt 官方网站或通过 Git 获取目标版本的源代码。解压后进入源目录,利用命令行工具进行如下操作: ```bash ./configure -static -prefix /path/to/install -no-opengl -nomake examples -nomake tests make -j$(nproc) make install ``` 此脚本中的 `-static` 参数指定了要生成静态而非共享对象;而其他选项则用于减少不必要的组件以加快编译速度并减小程序体积大小。完成这一步骤之后便拥有了一个专为静态链接准备好的 Qt 环境[^4]。 #### 设置 Qt Creator 使用自定义 Qt 版本 启动 Qt Creator 后前往菜单栏选择 **Tools** -> **Options...**, 接着定位到左侧列表里的 "Build & Run" 分类下的 "Qt Versions": 点击右侧窗口底部的 “Add…” 按钮浏览至先前指定路径 `/path/to/install/qbin/qmake`, 添加新条目以便 IDE 能够识别这个特别定制过的 Qt 工具链[^2]. 随后在同一页面切换到 "Kits" 标签页来新建一条 Kit 记录关联刚才加入的 Qt 版本与其他必要属性(如编译器)。注意这里应当选用适用于当前主机架构类型的交叉编译器,如果有的话[^3]. 最后保存更改退出设置界面返回主编辑区。 #### 创建项目并启用静态链接模式 当一切就绪以后就可以像平常一样建立新的 C++ 项目了。不过需要注意的是,在 `.pro` 文件里添加一行或多行语强制开启静态连接方式: ```qmake CONFIG += static QMAKE_LFLAGS += -Wl,-Bstatic LIBS += -lstdc++ ``` 以上指令告诉 qmake 及其背后驱动程序 gcc/g++ 尽量采用静态代替默认行为即优先查找动态加载[^5]。 至此已经完成了整个流程描述,现在可以正常编写业务逻辑测试成果啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值