在ubuntu20.04终端使用cmake编译用QT写好的代码报错的解决方案
1.在Qtcreator中,我设置Qt的构建目录是build
文件夹,因此,使用Qtcreator软件进行编译时会在工程文件夹下生成一个名为build
的构建文件夹,此时代码是可以运行成功的
2.我想着在不打开Qtcreat软件的前提下,运行CMakeList.txt
,因此,我在终端编译Qtcreator 写的CMakeList.txt文件
1. cd filename
2. mkdir build2
3. cd build2
4. cmake ..
- 这里的
filename
指的是要编译的CMakeList.txt
所在文件夹 - 这里
build2
是为了跟Qtcreator运行时构建的build
文件区分,因为如果你用Qtcreator软件运行代码,会在此目录生成build
文件夹 build
是用Qtcreator软件运行代码生成的编译文件build2
是在不打开Qtcreator的前提下,在终端编译生成 的编译文件
报错内容如图:
该问题出在 CMake 无法找到 Qt 配置文件 (Qt6Config.cmake 或 Qt5Config.cmake)。这通常是因为 Qt 没有正确安装,或者 CMake 无法找到 Qt 的安装路径。
解决方法
find /home/gyt/Qt2/5.15.2 -name "Qt5Config.cmake" # 或者 Qt6Config.cmake
由于缺少Qt6Config.cmake 或 Qt5Config.cmake
的配置文件,如果不知道你的系统是否安装了该文件,那么可以用上面的代码进行查找,/home/gyt/Qt2/5.15.2
是我安装QT的安装目录,在这个目录下进行查找
查找后返回的结果:
/home/gyt/Qt2/5.15.2/android/lib/cmake/Qt5/Qt5Config.cmake
/home/gyt/Qt2/5.15.2/gcc_64/lib/cmake/Qt5/Qt5Config.cmake
/home/gyt/Qt2/5.15.2/android/lib/cmake/Qt5/Qt5Config.cmake
和 /home/gyt/Qt2/5.15.2/gcc_64/lib/cmake/Qt5/Qt5Config.cmake
都包含了 Qt5 的 CMake 配置文件。根据你的安装情况,应该使用 /home/gyt/Qt2/5.15.2/gcc_64/lib/cmake/Qt5
作为 CMake 查找 Qt5 的路径,因为它是为常规的 64 位 GCC 构建提供的配置。
由于系统已经安装的相应的配置文件,因此考虑是没有添加相应的系统路径所导致的
1. cd .. #退出build目录,到build目录的上一级目录
2. export CMAKE_PREFIX_PATH=/home/gyt/Qt2/5.15.2/gcc_64/lib/cmake/Qt5:$CMAKE_PREFIX_PATH
3. cd build
4. cmake ..
这样cmake
就编译成功了
如果采用上面的方法设置路径,那么每一次编译文件时都要重新设置路径,因此,我把路径添加到~/.bashrc
文件,以便每次打开终端时自动设置。
vim ~/.bashrc
#或 sudo vim ~/.bashrc 需要管理员权限时使用
#在文件最下面添加这句代码
export CMAKE_PREFIX_PATH=/home/gyt/Qt2/5.15.2/gcc_64/lib/cmake/Qt5:$CMAKE_PREFIX_PATH
编译成功后:
make
这样就会在build
文件下生成可执行文件shiyan
# 在当前文件下
./shiyan
#就可以运行代码了
总结代码:
1. cd filename
2. mkdir build
3. cd build
4. cmake ..
#如果有上面的路径报错:执行
7. # cd ..
8. # export CMAKE_PREFIX_PATH=/home/gyt/Qt2/5.15.2/gcc_64/lib/cmake/Qt5:$CMAKE_PREFIX_PATH
9. # cd build
10. # cmake..
# cmake编译成功后:
11. make
12. ls #查看可执行文件
13. ./filename #这里的filename是可执行文件的名称
如果编译不成功,则重新编译
1. rm -r build
2. mkdir build
3. cd build
4. camke ..
5. make