之前学习linux应用开发时用到了QT的交叉编译,使其生成的程序能在韦东山的iMX6ULL pro板子上运行,最近想系统学习一下QT,发现环境有些乱了,有些文件可能被误删了,而且直接用之前的kits配置,生成的程序需要在arm板子上才能看到效果,有点麻烦,但是在QTcreator中直接运行会提示:
/home/book/C++/test/build-untitled-100ask_imx6ull-Debug/untitled: 1: /home/book/C++/test/build-untitled-100ask_imx6ull-Debug/untitled: Syntax error: word unexpected (expecting ")") 按 <RETURN> 来关闭窗口...
这通常说明是给 **100ask imx6ull 开发板(ARM架构)**进行交叉编译,而你尝试 在 Ubuntu x86 主机上直接运行这个 ARM 可执行程序,所以会报错。
这是需要在 Tools -->options下面配置一下kits,但是选择qt版本时,发现之前的被删了,导致不能用,Desktop是红色感叹号,不能选
✅ 修复步骤(确保 Desktop Kit 可用):
✅ 1. 修复 Qt 版本(重点)
在 Qt version
那一项显示的是 Qt 5.12.8 (host)
,但前面有一个感叹号说明它本身有问题。
请按以下操作检查 Qt 是否正确:
-
点击左上角“Qt Versions”标签页。
-
检查是否有一个有效路径的 Qt 版本(例如
/usr/lib/qt5
或/opt/Qt5.12.8/gcc_64/bin/qmake
)。 -
如果路径错误或不存在,就需要重新添加:
✅ 添加新的 Qt 版本:
点击 添加(Add)
,然后浏览选择系统中的 qmake
路径,例如:
/usr/bin/qmake
或:
/opt/Qt5.12.8/gcc_64/bin/qmake
注意:
qmake
是 Qt 的构建工具,必须存在于 Qt 安装目录下。
✅ 2. 修复 Qt mkspec(如果为空)
在 Desktop Kit 设置中,Qt mkspec
如果为空或报错,请点击右侧 “Change” 按钮,在下拉菜单中选择:
linux-g++-64
✅ 3. 应用并设置为默认
完成上述修复后:
-
点击右下角
Apply
应用设置。 -
点击右侧
Make Default
将Desktop
设为默认 Kit。 -
然后点击
OK
退出。
✅ 4. 回到项目创建页面重新勾选 Desktop Kit
这样就可以成功点击“下一步”进行项目创建了。
如果你不确定 qmake
的路径,可以运行以下命令确认:
which qmake
或者列出系统 Qt 安装:
dpkg -l | grep qt
当选择/usr/bin/qmake这个时,会出现报错:
这说明尝试添加的是 Qt4 的 qmake,但该文件不是一个有效的可执行文件,可能是残留的旧文件或已损坏。
输入:qmake -v 报错qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
这表明当前系统的 /usr/bin/qmake
实际上是一个坏的软链接(可能指向了 Qt4 但目标文件已经不存在),所以无法执行。
✅ 解决方法:重新指向正确的 Qt5 qmake
第一步:查找正确的 Qt5 qmake
运行以下命令,查找系统中 Qt5 的 qmake
实际安装位置:
sudo find / -name qmake 2>/dev/null | grep qt5
如果找到了例如 /usr/lib/qt5/bin/qmake
,那么就可以继续下一步。
第二步:修复 /usr/bin/qmake
的符号链接
假设你找到了 Qt5 的路径是 /usr/lib/qt5/bin/qmake
,你可以用以下命令修复:
sudo ln -sf /usr/lib/qt5/bin/qmake /usr/bin/qmake
如果路径不同,比如 /opt/qt5/bin/qmake
,那就改成对应的路径。
第三步:验证是否修复成功
qmake -v
你应该能看到类似如下输出:
QMake vers ion 3.1 Using Qt version 5.12.8 ...