我的操作系统是Ubuntu.我想在我的项目中从QT4更改为QT5.虽然本机包在Ubuntu中是4.x版本.
我从QT主页下载了Linux安装程序并安装了QT5.4 /opt/Qt/5.4/
找不到此路径
find_package (Qt5 REQUIRED)
Run Code Online (Sandbox Code Playgroud)
我尝试添加
set(CMAKE_MODULE_PATH "/opt/QT/5.4;${CMAKE_MODULE_PATH}")
Run Code Online (Sandbox Code Playgroud)
对我而言CMAKELIST.txt,这没有用.
我在哪里链接,或者我使用错误的语法?
在通过调用提示之后的一些编辑:
cmake -DCMAKE_PREFIX_PATH=/opt/QT/5.4/gcc_64/ ../src/
Run Code Online (Sandbox Code Playgroud)
我也删除了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
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会在阅读https://blogs.kde.org/2008/12/12/how-get-cmake-find-what-you-want-it后发生这种情况 .在那里声明,将在默认搜索目录之前搜索路径.我现在使用的路径似乎是:
/opt/QT/5.4/gcc_64/
Run Code Online (Sandbox Code Playgroud)
添加子文件夹gcc_64必须正确,因为此子文件夹具有"lib","include"等子文件夹.
我记得我也打过电话
sudo apt-get install QT5-default
Run Code Online (Sandbox Code Playgroud)
前一段时间.这没有用,我需要QT的安装程序.虽然我再次删除了qt5-default以防止cmake找到错误的包配置文件,但仍会出现相同的错误.
请参阅下面的讨论,转到此处: Cmake和QT5 - Include只接受一个参数
你必须使用变量CMAKE_PREFIX_PATH,即调用
cmake -DCMAKE_PREFIX_PATH=/opt/QT/5.4 <path_to_source>
Run Code Online (Sandbox Code Playgroud)
在构建树的根目录下.然后你可以使用find_package(Qt5 ...)等.另见Qt5 cmake文档.
你内心的粗略区别:
CMAKE_MODULE_PATH用于"一般" 包含文件和"FindXXX.cmake"文件find_package(... MODULE).CMAKE_PREFIX_PATH在语境中有特殊意义find_package(... CONFIG).这是一个新错误,因此需要一个新问题.如果你在找到Qt5 config.cmake文件之前有错误:-)
无论如何,正如错误告诉你的那样
Qt5包需要至少一个组件
你需要指定Qt5包的一个组件.正如cmake文档所说,你需要使用find_package(Qt5 REQUIRED COMPONENTS Widgets Core ...)接口,以便cmake(更好:Qt5 FindQt5.cmake的逻辑)知道要查找的内容.这将为您Qt5::Widgets提供使用/链接的目标等.我不知道语法是否find_package(Qt5Widgets REQUIRED)有效,可能是等价的.
| 归档时间: |
|
| 查看次数: |
19288 次 |
| 最近记录: |