我有一个生成为.a文件的库(要静态链接)。在那里,我想包括Qt框架(QtCore.framework),因为我在OSX上。那可能吗?我怎么能用cmake来做呢?
我的尝试:
在CMakeLists.txt中我有
FIND_LIBRARY(QTCORE_LIBRARY NAMES QtCore
HINTS "${CMAKE_SOURCE_DIR}/osx/frameworks")
然后我打印变量$ {QTCORE_LIBRARY},它给出正确的路径。
然后在src / CMakeLists.txt(我的资源来源)我链接库 TARGET_LINK_LIBRARIES(libname $$ {QTCORE_LIBRARY})
然而,当我启动编辑时,它会抱怨因为找不到
致命错误:找不到'QtGlobal'文件
我已经检查过,QtCore.framework包含QtGlobal标题
编辑:如果有人有同样的问题我找到了解决方案。 我需要在项目包含目录中添加“$ {QTCORE_LIBRARY} / Headers”提前致谢并问候
答案 0 :(得分:2)
为什么不使用CMake" config.cmake"由Qt5提供?
类似的东西:
# Qt Setting
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets)
...
target_link_libraries(libname Qt5::Core Qt5::Gui Qt5::Widgets)
CMake可以找到并使用Qt5库。 [...]使用Qt5附带的“配置文件包”找到Qt5库
src:https://cmake.org/cmake/help/latest/manual/cmake-qt.7.html
为了使find_package成功,必须在CMAKE_PREFIX_PATH下面找到Qt 5,或者必须在CMake缓存中将Qt5_DIR设置为Qt5WidgetsConfig.cmake文件的位置。使用CMake的最简单方法是将CMAKE_PREFIX_PATH环境变量设置为Qt 5的安装前缀。