You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QT Creator C++开发如何编译生成Linux平台可执行程序

Linux平台Qt程序编译配置方案

Windows环境下编译生成的.exe是PE格式可执行文件,和Linux系统原生支持的ELF二进制格式不兼容,无法直接运行。要生成适配Linux的可执行程序,优先选择原生编译方案,兼容性问题最少。

方案1:Linux原生环境编译(推荐)

这是生产环境最常用的方案,几乎不会出现奇怪的ABI兼容、依赖缺失问题:

  • 先在目标Linux发行版上安装Qt开发环境,以Ubuntu/Debian系为例,终端执行命令安装基础依赖和Qt Creator:
    sudo apt update
    # Qt5环境用这个命令
    sudo apt install build-essential qtbase5-dev qt5-qmake qtcreator
    # Qt6环境替换为qt6对应的包即可
    
  • 将Windows端的项目源码完整拷贝到Linux系统,注意只需要拷贝.pro项目文件、.cpp/.h源码、.qrc资源、.ui界面文件,不要带Windows下生成的debug/release构建目录、.exe文件、旧的Makefile等构建产物。
  • 打开Linux端的Qt Creator,直接导入拷贝过来的.pro项目文件,构建套件选择默认安装的Desktop Qt x.x.x GCC 64bit即可,自定义构建目录后直接点击构建。
  • 构建完成后会生成无后缀的ELF格式可执行文件,终端给执行权限即可启动:
    chmod +x 你的程序名
    ./你的程序名
    
  • 代码适配注意:如果项目里用了Windows专属API(比如引入windows.h、写死了C:\类Windows路径、调用了Win32接口),需要用Qt内置的平台宏做隔离:
    #ifdef Q_OS_WIN
    // 仅Windows平台生效的代码
    #endif
    #ifdef Q_OS_LINUX
    // Linux平台的对应实现
    #endif
    
    Qt自带的跨平台封装类(比如QFile/QMainWindow/QProcess等)不需要做任何修改,直接兼容两个平台。

方案2:Windows端交叉编译(不推荐,仅适合临时测试)

如果不想额外安装Linux系统/虚拟机,可以在Windows端的Qt Creator里配置交叉编译工具链直接生成Linux可执行文件,但后续部署依赖问题较多:

  • 下载和你当前Qt版本严格匹配的Linux交叉编译工具链(基于gcc的Linux目标平台编译套件),版本不匹配会直接导致编译失败或者运行崩溃。
  • 打开Qt Creator,依次进入工具 -> 选项 -> Kits,分别配置三个部分:
    • 编译器:添加交叉编译工具链里的gcc/g++路径,ABI选择linux x86_64 通用elf格式
    • Qt版本:添加交叉编译工具链自带的qmake路径
    • 调试器:添加工具链配套的gdb调试程序路径
  • 新建一个编译套件,关联刚才配置的编译器、Qt版本、调试器,设备类型选通用Linux设备。
  • 选择这个新建的交叉编译套件构建项目,即可生成Linux下可运行的ELF格式程序。

部署注意事项

编译生成的程序如果要放到其他没有安装Qt开发环境的Linux机器上运行,需要把依赖的Qt库、插件一起打包,可使用linuxdeployqt类的打包工具自动收集依赖,不需要手动逐个拷贝库文件。
不要尝试用Wine运行Windows版exe做正式发布,性能和兼容性都无法保证,仅适合临时调试场景。

内容的提问来源于stack exchange,提问作者Harry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 05:21:23