首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将Zlib与Cmake连接起来

如何将Zlib与Cmake连接起来
EN

Stack Overflow用户
提问于 2018-11-14 18:52:56
回答 2查看 16.4K关注 0票数 11

我正在尝试将我的文件与zlib libray链接,但仍然得到:未定义的对` `deflateInit_‘的引用。

我目前正在使用CLion,已经从主页下载了zLib文件,并将其添加到项目中。这是我的CmakeLists.txt的样子

代码语言:javascript
运行
复制
cmake_minimum_required(VERSION 3.10) project(GzipTest)

set(CMAKE_CXX_STANDARD 11)

include_directories(ZLIB zlib-1.2.11)

add_executable(GzipTest main.cpp zlib-1.2.11/zlib.h)

和代码(从zpipe.c复制):

代码语言:javascript
运行
复制
include "iostream"

include "zlib.h"

include "iostream"

define CHUNK 1639


FILE *fp;


int def(FILE *source, FILE *dest, int level){
    int ret, flush;
    unsigned have;
    z_stream strm;
    unsigned char in[CHUNK];
    unsigned char out[CHUNK];

    // Allocate Deflate state
    strm.zalloc = Z_NULL;
    strm.zfree = Z_NULL;
    strm.opaque = Z_NULL;

    ret = deflateInit(&strm, level);
    if (ret != Z_OK){
        return ret;
    }

}


int main(){
    fp = fopen("inputFile.txt", "r");
    if (fp == nullptr){
        perror("Could not open data");
        exit(EXIT_FAILURE);
    }
    def(fp, fp, 1); 
}

可能会遗漏什么?提前感谢

EN

Stack Overflow用户

发布于 2018-11-14 18:56:33

您必须链接到zlib。

如果您使用:

代码语言:javascript
运行
复制
find_package(ZLIB)

那么你应该有:

代码语言:javascript
运行
复制
target_link_libraries(GzipTest ZLIB::ZLIB)

另外,不要将头文件添加到源文件中:

代码语言:javascript
运行
复制
add_executable(GzipTest main.cpp)
票数 15
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53298492

复制
相关文章

相似问题

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