【发布时间】:2016-11-28 04:55:58
【问题描述】:
我最近刚刚升级到 Qt 5.7,我正在尝试构建一个需要查找多个包的项目。我在 Mac 上,最近也升级到了 el capitan。我在我的 .bash_profile 中设置了 CMAKE_PREFIX_PATH 并检查了环境以验证它是否正确。当我做 cmake 。在我的项目所在的文件夹上(以前这是我构建的)它给了我几个错误,例如:
CMake Warning at CMakeLists.txt:79 (FIND_PACKAGE):
By not providing "FindQt5Widgets.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"Qt5Widgets", but CMake did not find one.
Could not find a package configuration file provided by "Qt5Widgets" with
any of the following names:
Qt5WidgetsConfig.cmake
qt5widgets-config.cmake
Add the installation prefix of "Qt5Widgets" to CMAKE_PREFIX_PATH or set
"Qt5Widgets_DIR" to a directory containing one of the above files. If
"Qt5Widgets" provides a separate development package or SDK, be sure it has
been installed.
但是我已经验证了路径是正确的并且文件确实存在。我已经尝试了 cmake_prefix_path 的几种变体,例如:
CMAKE_PREFIX_PATH=/Users/mnicholson/Qt/5.7/clang_64/
还有
CMAKE_PREFIX_PATH=/Users/mnicholson/Qt/5.7/clang_64/lib/cmake/
但尽管 cmake 文件在那里,但似乎两者都不起作用。使用旧版本的 qt 设置路径有效,但是自从从 5.5 升级到 5.6 再到 5.7 我很困惑......帮助!这是qt5.7的问题吗?首领?
谢谢!
【问题讨论】:
-
如果您不只是加载小部件模块,您的路径应该是
/Users/mnicholson/Qt/5.7/clang_64/lib/cmake/Qt5Widgets或/Users/mnicholson/Qt/5.7/clang_64/lib/cmake/Qt5。您在示例中给出的路径不完整 -
对了,你也可以尝试设置Qt5Widgets_DIR(或Qt5_DIR),避免污染cmake全局变量
-
所以我必须指向每个特定的文件夹?我有大约 2 打这样的错误。我的印象是(正如我之前所说,这在 5.4 和 5.6 中有效,路径为 /Users/mnicholson/Qt/5.6/clang_64/)指向顶部文件夹,并且 cmake 将搜索此文件夹下的文件夹它需要什么。那么 5.6 和 5.7 之间发生了什么变化?
-
我不知道发生了什么变化。它不应该与以前的版本一起使用。我猜你的系统是以不同的方式配置的,一些系统变量指向正确的位置,但我不知道。您不必指向每个文件夹。只需指向 Qt5 并在项目的根目录中指定您需要的模块。我建议你用一个例子来回答
-
我确实指向了 Qt5,并在我的项目的根目录中列出了我需要的模块,这就是我问这个问题的原因。我暂时回滚到 5.6.1 只是为了得到一些可以构建的东西。