[TOC]
一、前言
最近需要做一个QT界面,在安装过后,新建项目QT Widgets Application会报错,选用cmake会报错:
Project ERROR: You need to set the ANDROID_NDK_ROOT environment variable to point to your Android NDK.
Could not read qmake configuration file /opt/QT5.14.2/5.14.2/android/mkspecs/android-clang/qmake.conf.
Running /usr/bin/snap /home/***/Desktop/test -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_CXX_COMPILER:STRING=/usr/bin/g++ -DCMAKE_C_COMPILER:STRING=/usr/bin/gcc -DCMAKE_PREFIX_PATH:STRING=/opt/QT5.14.2/5.14.2/gcc_64 -DQT_QMAKE_EXECUTABLE:STRING=/opt/QT5.14.2/5.14.2/gcc_64/bin/qmake in /home/***/Desktop/build-test-Desktop_Qt_5_14_2_GCC_64bit-Debug.
error: unknown command "/home/***/Desktop/test", see 'snap help'.
我的环境:ubuntu20.04 QT5.14.2
二、问题分析
主要发现的后面提示==“snap help”==,很诧异,为什么会提示这个,然后查看==Tools–>Options–>Kits–>CMak==e发现我的cmake是通过snap安装的。通过这个安装会带来路径和权限问题,所以解决方法就很简单了。
三、问题解决
卸载snap安装的cmake,同时手动安装cmake
3.1.卸载snap的cmake
sudo snap remove cmake
在安装之前还需要看看有没有其余方式安装的cmake,例如apt安装的以及手动安装编译的版本。如果不卸载干净有可能导致版本混乱报错,所以最好卸载干净。
可以运行cmake –version ccmake –version cmake-gui which cmake查看是否有没有卸载的版本
3.2.重新安装cmake(三种方式)
3.2.1.ubuntu apt安装
sudo apt-get update
sudo apt install cmake
sudo apt-get install -y build-essential
省事但版本比较老,不过对于版本没有需求其实也够用
3.2.2.去官网下载编译好的包
直接下载二进制包的话,官网链接:https://cmake.org/files/
进入选择需要下载的版本,示例选择的是==cmake-3.24.0-linux-x86_64.tar.gz==
解压并添加软连接:
tar -zxvf cmake-3.24.0-linux-x86_64.tar.gz
sudo ln -s 你的解压根目录/cmake-3.24.0-linux-x86_64/bin/cmake /usr/bin/cmake
如果提示已经存在则删除老版本
rm /usr/bin/cmake
测试
cmake --version
正常输出版本号即可
确定就是没有cmake-gui
3.2.3.下载源文件编译
如果想可以运行cmake-gui,想要图形化界面可以下载包自己编译
下载带有==rc==的包,以cmake-3.27.0-rc1.tar.gz为例
同样先解压
tar -zxvf cmake-3.27.0-rc1.tar.gz
建立build文件
cd cmake-3.27.0-rc1/build
编译cmake和cmake-gui(前提已经安装了qt)
../bootstrap --qt-gui
make -j$(nproc) #-j$(代表)电脑核数,不写写行,加了编译更快点
sudo make install
验证
cmake --version
cmake-gui
3.3.4.新建QT项目
发现build完就能run,bug解决。