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

使用WSL和VS2019交叉编译Qt应用时qmake运行报错

问题分析

核心问题出在WSL环境下的qmake与VS2019的Qt VS Tools交互不兼容,以及项目配置未正确映射WSL的Qt资源:

  • 头文件找不到:VS未识别到WSL中Qt的头文件位置
  • qmake错误:WSL的qmake不支持生成Windows专属的vcapp模板,且跨路径解析时出现IO权限/格式问题
解决步骤

1. 修正Qt VS Tools的WSL Qt版本配置

不要直接添加本地路径,通过远程连接关联WSL环境:

  • 打开VS2019,进入Tools > Options > Cross Platform > Connection Manager
  • 添加WSL连接,选择你的Ubuntu发行版,测试连接确保成功
  • 回到Qt VS Tools > Qt Versions,点击Add,选择Remote类型,关联刚才创建的WSL连接,定位到WSL中的qmake路径(/usr/lib/x86_64-linux-gnu/qt5/bin/qmake)
  • 确认该Qt版本的Platform显示为Linux

2. 调整项目的WSL编译配置

创建项目时直接指定WSL为目标平台:

  • 新建Qt Console Application,在向导的Target Platforms勾选Linux (WSL),向导会自动关联WSL的Qt环境
  • 若为已有项目,右键项目 > Properties > Configuration Properties > General,将Platform Toolset改为WSL_xxxx(匹配你的WSL GCC版本),Platform设为x64/x86

3. 修复qmake模板不兼容问题

WSL的qmake仅支持Linux项目模板,修改.pro文件:

TEMPLATE = app
TARGET = QtConsoleApplication1
QT += core
SOURCES += main.cpp
  • 删除.vcxproj中自动生成的vcapp相关错误配置段

4. 确保路径映射正确

避免路径含空格/特殊字符,测试WSL中qmake的可用性:

  • 将项目移至无空格路径(如C:\Projects\QtConsoleApp)
  • 在WSL终端手动测试:
cd /mnt/c/Projects/QtConsoleApp
qmake -o Makefile QtConsoleApplication1.pro

若能生成Makefile,说明路径和qmake本身无问题,问题出在VS配置

5. 手动配置头文件路径

若自动配置失效,手动添加WSL的Qt头文件路径:

  • 右键项目 > Properties > Configuration Properties > C/C++ > General
  • 在Additional Include Directories中添加:\\wsl$\Ubuntu\usr\include\qt5(替换Ubuntu为你的WSL发行版名称)
  • 勾选Recursive包含子目录
额外建议
  • 尽量保持Windows和WSL的Qt版本一致,避免小版本差异带来的潜在兼容性问题
  • 更新VS2019到最新版本,确保Qt VS Tools和WSL组件为最新状态

内容的提问来源于stack exchange,提问作者Nils Mügge

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 23:33:30