Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在OS X上的CMake文件中检测Qt5 core的位置?_Cmake_Qt5 - Fatal编程技术网

如何在OS X上的CMake文件中检测Qt5 core的位置?

如何在OS X上的CMake文件中检测Qt5 core的位置?,cmake,qt5,Cmake,Qt5,我正在使用CMake在OS X上构建一个Qt5项目。我需要创建一个对其他人来说尽可能简单的构建过程 默认情况下,Qt5安装到OS X上的主文件夹中。但是,它会将其文件放置在以确切版本号命名的目录中,例如5.2.1 目前,我正在CMake文件中使用以下行: set(QT5_PATH $ENV{HOME}/Qt5.2.1/5.2.1/clang_64/ CACHE PATH "Path to Qt5") set(QT5_MODULE_PATH ${QT5_PATH}/lib/cmake) set(C

我正在使用CMake在OS X上构建一个Qt5项目。我需要创建一个对其他人来说尽可能简单的构建过程

默认情况下,Qt5安装到OS X上的主文件夹中。但是,它会将其文件放置在以确切版本号命名的目录中,例如5.2.1

目前,我正在CMake文件中使用以下行:

set(QT5_PATH $ENV{HOME}/Qt5.2.1/5.2.1/clang_64/ CACHE PATH "Path to Qt5")
set(QT5_MODULE_PATH ${QT5_PATH}/lib/cmake)
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${QT5_MODULE_PATH})
这是可行的,但不幸的是,Qt的每次小更新都会中断,因为
5.2.1
需要更改为
5.2.2
,等等


在Windows中,有一些环境变量可用于查找Qt。在操作系统X中,我可以在CMake中使用类似的东西来查找Qt安装吗?

使用
find_package
而不是自己处理路径。然后,您的用户可以依赖标准的CMake机制,而不必计算您自己的CMake代码

使用
find_-package(Qt5Widgets)
获取像
Qt::Widgets这样的目标,以链接到包含的内容。
类似于
Qt5Core
和qt5的任何部分


请参阅Qt的文档:

注意,您链接到的文档不建议使用
Qt5Widgets\u INCLUDE\u DIRS
等,而是建议使用导入的目标,如
Qt5::Widgets
。你也应该推荐:)@steveire你是对的,我加了一句相应的话。我应该说‘你应该推荐它’(这是文章推荐的,你也应该——而不是你应该另外推荐变量——这没有任何意义)。我认为没有理由鼓励任何人接受这些变量。使用导入的目标并忽略变量。