首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在QuaZip中连接CMake库

如何在QuaZip中连接CMake库
EN

Stack Overflow用户
提问于 2019-01-16 18:58:26
回答 1查看 2.2K关注 0票数 2

我的项目使用QuaZip库,我需要通过CMake构建这个项目。如何将这个库添加到CMakeLists中?从图书馆我需要JlCompress

我的CMakeLists:

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.6)
#set_property(GLOBAL PROPERTY USE_FOLDERS ON)
#set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "cmake")

set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED ON)

project(Archiver LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

find_package(Qt5 REQUIRED COMPONENTS Core Widgets Gui)
find_package(zlib)
find_package(QuaZip5)
include_directories(${QUAZIP_INCLUDE_DIRS})

set(project_ui
    mainwindow.ui)
set(project_headers
    archive.h
    mainwindow.h)
set(project_sources
    main.cpp
    archive.cpp
    mainwindow.cpp)

qt5_wrap_ui(project_headers_wrapped ${project_ui})
qt5_wrap_cpp(project_sources_moc ${project_headers})

add_executable(${PROJECT_NAME} ${project_headers} ${project_sources} 
    ${project_sources_moc} ${project_headers_wrapped})

target_link_libraries(${PROJECT_NAME} 
    PUBLIC 
    Qt5::Core
    Qt5::Gui
    Qt5::Widgets
    ${QUAZIP_LIBRARIES}
)

生成错误:

CMake警告at CMakeLists.txt:13 (find_package):由于没有在CMAKE_MODULE_PATH中提供"Findquazip.cmake“,该项目要求CMake查找由"quazip”提供的包配置文件,但CMake没有找到。 无法找到由"quazip“提供的具有下列任何名称之一的包配置文件: quazipConfig.cmake quazip-config.cmake 将安装前缀"quazip“添加到CMAKE_PREFIX_PATH或将"quazip_DIR”设置到包含上述文件之一的目录中。如果"quazip“提供了一个单独的开发包或SDK,请确保它已经安装。 CMake Error at CMakeLists.txt:37 ( target_link_libraries ):target_link_libraries的关键字签名已经与目标"Archiver“一起使用。带有目标的target_link_libraries的所有使用都必须是All关键字或全纯文本。 关键字签名的用法如下:

  • CMakeLists.txt:31 (target_link_libraries)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-16 21:00:52

quazip的查找脚本名为FindQuaZip5.cmake (在安装期间重命名)。因此,要找到您需要使用的quazip

代码语言:javascript
复制
find_package(QuaZip5)

find脚本的含义在它的头上描述了:

代码语言:javascript
复制
# QUAZIP_FOUND               - QuaZip library was found
# QUAZIP_INCLUDE_DIR         - Path to QuaZip include dir
# QUAZIP_INCLUDE_DIRS        - Path to QuaZip and zlib include dir (combined from QUAZIP_INCLUDE_DIR + ZLIB_INCLUDE_DIR)
# QUAZIP_LIBRARIES           - List of QuaZip libraries
# QUAZIP_ZLIB_INCLUDE_DIR    - The include dir of zlib headers

也就是说,为了在代码中使用quazipzlib,添加以下几行:

代码语言:javascript
复制
include_directories(${QUAZIP_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${QUAZIP_LIBRARIES})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54223593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档