【发布时间】:2015-01-31 01:17:08
【问题描述】:
我的操作系统是 Ubuntu。我想在我的项目中从 QT4 更改为 QT5。 Ubuntu 现在的原生包是 4.x 版本。
我已经从QT主页下载了Linux安装程序,并在/opt/Qt/5.4/下安装了QT5.4
此路径未被
找到find_package (Qt5 REQUIRED)
我尝试添加
set(CMAKE_MODULE_PATH "/opt/QT/5.4;${CMAKE_MODULE_PATH}")
给我的CMAKELIST.txt,但这无济于事。
我必须在哪里链接,还是我使用了错误的语法?
提示调用后的一些编辑:
cmake -DCMAKE_PREFIX_PATH=/opt/QT/5.4/gcc_64/ ../src/
我还删除了 CMAKE_MODULE_PATH 变量。 我仍然得到同样的错误:
CMake Error at CMakeLists.txt:3 (find_package):
Found package configuration file:
/usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake
but it set Qt5_FOUND to FALSE so package "Qt5" is considered to be NOT
FOUND. Reason given by package:
The Qt5 package requires at least one component
看了https://blogs.kde.org/2008/12/12/how-get-cmake-find-what-you-want-it之后不知道为什么会这样 。那里指出,将在默认搜索目录之前搜索路径。我使用的路径似乎是现在:
/opt/QT/5.4/gcc_64/
添加子文件夹gcc_64必须是正确的,因为这个子文件夹有“lib”、“include”等子文件夹。
我记得我也打过电话
sudo apt-get install QT5-default
前段时间。这没有帮助,我需要 QT 的安装程序。虽然我再次删除了qt5-default,以防止cmake找到错误的包配置文件,但还是出现了同样的错误。
请参阅下面的讨论,移至此处: Cmake and QT5 - Include only takes one argument
【问题讨论】:
-
应该';'在你的 set() 语句中有吗?
-
我认为 set(CMAKE_MODULE_PATH "/opt/QT/5.4;${CMAKE_MODULE_PATH}") 是正确的语法,但不确定
-
CMAKE_MODULE_PATH是查找.cmake文件的路径而不是查找已安装的包。 -
你可以从简单的例子开始:stackoverflow.com/questions/25989448/…,希望对你有帮助。
-
您需要在
find_package (Qt5Core REQUIRED)或find_package (Qt5Widgets REQUIRED)上替换find_package (Qt5 REQUIRED)。