【问题标题】:No zlib.h file in usr/local/include how to get itusr/local/include中没有zlib.h文件如何获取
【发布时间】:2016-06-03 09:28:11
【问题描述】:

所以我一直在尝试运行一个 C++ 程序,该程序需要 Zlib 库来编译文件,它在查看 usr/local/include 时给出错误提示“zlib.h 不存在此类文件或目录”,我发现该文件是不是我可以将文件复制到那个位置或者我应该安装一些东西。我对ubuntu有点陌生,所以请帮忙

【问题讨论】:

  • 问答在 Linux Ubuntu 上安装/构建 Swift Vapor 时也很有用。

标签: ubuntu-14.04 zlib


【解决方案1】:

使用开发支持安装zlib

sudo apt-get install zlib1g-dev

如果您不想或不需要使用完整的zlib,编写将zlib 函数1:1 映射到不支持压缩和解压缩的普通文件函数的包装程序是相当容易的.

//
//  dummy zlib.h
//

#pragma once
#include <stdio.h>

typedef FILE *gzFile;

int gzclose(gzFile file);
gzFile gzdopen(int fd, const char *mode);
gzFile gzopen(const char *path, const char *mode);
int gzread(gzFile file, void *buf, unsigned int len);


//
//  zlibDummy.cpp
//

#include <zlib.h>

int gzclose(gzFile file)
{
    return fclose(file);
}

gzFile gzdopen(int fd, const char *mode)
{
    return _fdopen(fd, mode);
}

gzFile gzopen(const char *path, const char *mode)
{
    return fopen(path, mode);
}

int gzread(gzFile file, void *buf, unsigned int len)
{
    return fread(buf, 1, len, file);
}

【讨论】:

    【解决方案2】:

    嗯,临时解决办法

    下载自:https://github.com/madler/zlib/blob/master/zlib.h
    将文件放在与项目文件相同的文件夹中。

    #include "zlib.h"
    

    【讨论】:

    • 感谢您的回答,我认为它会起作用,但 Axel 的更好
    • 安装 zlib.h 有点冒险,除非您确定它与您将链接到的已安装库相对应。使用 apt-get、yum、brew 或系统使用的任何包管理器来安装 libz 和 zlib.h 会更安全。
    • 我写这个答案是为了快速进行开发。虽然我永远不会推荐这样做。我可能也不会这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    • 2023-03-05
    • 2015-06-18
    相关资源
    最近更新 更多