如何将 Zlib 与 Cmake 链接

2024-04-10

我试图将我的文件与 zlib 库链接,但仍然得到:对 `deflateInit_' 的未定义引用。

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

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 复制):

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); 
}

可能缺少什么? 提前致谢


您必须链接到 zlib。

如果您使用:

find_package(ZLIB)

那么你应该有:

target_link_libraries(GzipTest ZLIB::ZLIB)

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

add_executable(GzipTest main.cpp)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Zlib 与 Cmake 链接 的相关文章

  • 如何将包含 5000 条记录的 Excel 文件插入到 documentDB 中?

    我有一个 Excel 文件 最初约有 200 行 我能够将 Excel 文件转换为数据表 并且所有内容都正确插入到 documentdb 中 Excel 文件现在有 5000 行 在插入 30 40 条记录后不会插入 其余所有行不会插入到
  • Accept() 是线程安全的吗?

    我目前正在用 C 语言为我正在做的课程编写一个简单的网络服务器 我们的一项要求是实现一个线程池来使用 pthread 处理连接 我知道我将如何粗略地执行此操作 在主线程中调用accept并将文件描述符传递给freee线程 但是我的朋友建议了
  • 键盘加速器在 UWP 应用中停止工作

    我正在尝试将键盘加速器添加到 UWP 应用程序中的 CommandBar 菜单项 当应用程序启动时 这工作正常 但在我第一次打开溢出菜单后 加速器停止工作 这似乎不会发生在主要命令 菜单之外 上 只有溢出菜单内的辅助命令才会发生 此外 单击
  • 使用 OpenGL 着色器进行数学计算 (C++)

    我有一个矩阵 例如 100x100 尺寸 我需要对每个元素进行计算 matrix i j tt 8 5例如 我有一个巨大的矩阵 我想使用 OpenGL 着色器来实现该算法 我想使用着色器 例如 uniform float val unifo
  • 无法从 Web api POST 读取正文数据

    我正在尝试从新的 Asp Net Web Api 中的请求中提取一些数据 我有一个像这样的处理程序设置 public class MyTestHandler DelegatingHandler protected override Syst
  • 从 future 中检索值时的 SIGABRT

    我在使用 C 11 future 时遇到问题 当我打电话时wait or get 关于返回的未来std async 程序接收从mutex标头 可能是什么问题呢 如何修复它 我在 Linux 上使用 g 4 6 将以下代码粘贴到 ideone
  • 有没有办法使用 i387 fsqrt 指令获得正确的舍入?

    有没有办法使用 i387 fsqrt 指令获得正确的舍入 除了改变精确模式在 x87 控制字中 我知道这是可能的 但这不是一个合理的解决方案 因为它存在令人讨厌的重入型问题 如果 sqrt 操作中断 精度模式将出错 我正在处理的问题如下 x
  • 单线程公寓问题

    从我的主窗体中 我调用以下命令来打开一个新窗体 MyForm sth new MyForm sth show 一切都很好 但是这个表单有一个组合框 当我将其 AutoCompleteMode 切换为建议和追加时 我在显示表单时遇到了这个异常
  • 您可以在一个 Windows Azure 实例上部署多个 Web 应用程序吗?

    是否可以在一个 windows azure 小型计算实例中运行一堆 Web 应用程序 我正在考虑使用 Azure 作为放置一堆处于开发和非生产状态的项目 Web 应用程序 的地方 有些实际上已经被封存了 但我想在某个地方有一个活跃的实例 我
  • 格式化货币

    在下面的示例中 逗号是小数点分隔符 我有这个 125456 89 我想要这个 125 456 89 其他示例 23456789 89 gt 23 456 789 89 Thanks 看看这个例子 double value 12345 678
  • dropdownlist DataTextField 由属性组成?

    有没有一种方法可以通过 C 使 asp net 中的下拉列表的 datatextfield 属性由对象的多个属性组成 public class MyObject public int Id get set public string Nam
  • 系统错误 124 - SHFileOperation 的 ERROR_INVALID_LEVEL

    我在使用时遇到问题SHFileOperation SHFileOperation SHFILEOPSTRUCT https stackoverflow com questions 9191415 shfileoperation shfile
  • 从事务范围调用 WCF 服务方法

    我有这样的代码 using TransactionScope scope TransactionScopeFactory CreateTransactionScope some methodes calls for which scope
  • 正确使用“extern”关键字

    有一些来源 书籍 在线材料 解释了extern如下 extern int i declaration has extern int i 1 definition specified by the absence of extern 并且有支
  • 使用(linq to sql)更新错误

    我有两个表 通过外键 CarrierID 绑定 Carrier CarrierID CarrierName CarrierID 1 CarrierName DHL CarrierID 2 CarrierName Fedex Vendor V
  • 如何使用收益返回和递归获得字母的每个组合?

    我有几个像这样的字符串列表 可能有几十个列表 1 A B C 2 1 2 3 3 D E F 这三个仅作为示例 用户可以从几十个具有不同数量元素的类似列表中进行选择 再举个例子 这对于用户来说也是一个完全有效的选择 25 empty 4 1
  • 从 C 线程调用 Python 代码

    我对从 C 或 C 线程调用 Python 代码时如何确保线程安全感到非常困惑 The Python 文档 http docs python org c api init html non python created threads似乎是
  • 纯虚函数可能没有内联定义。为什么?

    纯虚函数是那些虚函数并且具有纯说明符 0 第 10 4 条第 2 款C 03 的内容告诉我们什么是抽象类 顺便说一句 如下 注意 函数声明不能 同时提供纯说明符和定义 尾注 示例 struct C virtual void f 0 ill
  • 使用 Chrome 和 Selenium 设置 LocalStorage

    我正在尝试使用 OpenQA Selenium 和 Chrome 设置本地存储键和值 我认为这相当微不足道 但我似乎无法让它发挥作用 我对 C 很陌生 所以我可能错过了一些东西 无论如何 我有这个功能 public static void
  • 无法使 Polly 超时策略覆盖 HttpClient 默认超时

    我正在使用 Polly 重试策略 并且正如预期的那样 在重试过程中HttpClient达到 100 秒超时 我尝试了几种不同的方法来合并 Polly 超时策略 将超时移至每次重试而不是总计 但 100 秒超时仍然会触发 我读过大约 5 个

随机推荐

  • ValueError:在PIL中混合图片时图像不匹配

    我一直在用 python 搞乱 看看是否可以将两张图片 混合 在一起 我的意思是 图像是透明的 您可以同时看到两张图片 如果这仍然没有意义 请查看此链接 只有我会混合图片和图片而不是 gif https cdn discordapp com
  • 通过 JavaScript 动态创建和打印 h1 标签

    我需要能够在 JavaScript 中创建一个函数 我需要做的就是输入 h1 hello 它就会打印 hello 我想避免这种方法 function h1 text document write h1 text h1 这就是我所拥有的 fu
  • 使用拦截器延迟所有请求

    出于调试目的 我想延迟all请求 以便我可以模拟加载资源实际上需要时间 我想这可以在拦截器中以某种方式完成 我确实设法推迟single现在请求 const delay milliseconds gt new Promise resolve
  • GitHub 对 SSH 部署密钥的限制

    GitHub SSH 部署密钥是否有任何限制 假设我需要将 2000 个甚至 4000 个部署密钥添加到 git 存储库中 这可能吗 或者我会在某个时候达到极限吗 原因是我们有 4000 台设备需要配置 我们希望控制哪些设备可以访问存储库
  • 删除字符“.”之前的字符

    如何有效地删除字符串中位于字符 之前的所有字符 Input 美洲美国 Output USA 您可以使用IndexOf method http msdn microsoft com en us library kwb0bwyd v VS 10
  • 有没有 View.GetOutline() 的替代方案可以提供更好的轮廓?

    返回的大纲View GetOutline 方法并不完全对应于可见绘图 它返回的内容比 SolidWorks GUI 显示的选择轮廓要多一些 下面的屏幕截图显示了选择轮廓 浅蓝色虚线矩形 和由返回的轮廓的对角线View GetOutline
  • sem_init(…): value 参数有什么用?

    在类中 我们必须使用信号量来完成线程的工作 sem init 的原型 和头文件 如下 int sem init sem t sem int pshared 无符号 int 值 但我不明白 value 变量的用途 据 opengroup or
  • 关闭 Android 中的自动对焦

    这是在我的应用程序代码中关闭相机自动对焦的任何方法 我想检查如果手机没有自动对焦功能 我的扫描仪如何工作 但我的手机有该功 能 Use FOCUS MODE INFINITY http developer android com refer
  • MojoExecutionException:使用 Android 的 Maven

    我将 Android Studio 与 Maven 3 1 1 一起使用 在包目标中它因 MojoExecutionException 崩溃 我读了很多帖子 但无法得到解决方案 错误 生成源时出错 org apache maven plug
  • 将 MySQL Workbench 链接到我的远程服务器

    我刚刚下载了 MySQL Workbench 但我不太明白如何将其与远程服务器上的数据库同步 工作台要求 主机名 因此我提供了远程服务器的主机名 我指定端口 3306 然后我提供一个用户名 这是我登录 PhpAdmin 时使用的用户名 我应
  • Twilio 通过 REST API 挂断呼叫不起作用?

    当呼叫状态为排队状态 正在振铃或已发起 时 如何挂断电话 下面的代码对呼叫没有任何影响 呼叫会继续响铃 直到听筒接听 有时 当座席意识到他们拨打了错误的号码时 他们需要一种方法在响铃过程中挂断呼叫 PHP code client gt ca
  • Android studio中的文件路径

    我正在尝试发送带有附件的电子邮件 除了附加文件之外 一切正常 调用方法时 它显示 java io FileNotFoundException 虽然我手动插入精确路径 文件 存储 模拟 0 Android data com example a
  • 查找一对 QuadCurve2D 的交集

    有没有一种简单的方法来近似两个实例的点 如果有 QuadCurve2D相交 也就是说 我如何计算图中红点的坐标 没有明显的方法QuadCurve2D去做这个 注意 这些点并不准确 因为我已经为图表手动调整了它们 另请注意 缺失 的第四个点
  • 我应该避免使用管道运算符对包进行编程吗?

    有没有客观原因管道操作员 https cran r project org web packages magrittr vignettes magrittr html来自 R 包magrittr 例如 gt 当我在 R 中编写包时应该避免吗
  • 波兰表示法的实现

    我想编写一个程序来计算给定算术表达式的输出 像那样 我的输入是 1 2 3 4 5 6 我的输出应该是 156 我编写了一个 Java 程序来使用 Stack 数据类型来执行此操作 这是我的 Java 程序 import java util
  • 防止 ejs for 循环中出现空行

    我有以下简单的 ejs 模板 这会产生以下结果 0 1 2 3 4 5 6 7 8 9 如何防止 ejs 创建这样的空行 如果可能的话 我不想修改结果字符串 而是告诉 ejs 不要渲染这些空行 我怎样才能做到这一点 修剪模式 newline
  • 张量流中的正则化损失是什么?

    当使用 Tensorflows 对象检测 API 训练对象检测 DNN 时 它的可视化平台 Tensorboard 会绘制一个名为regularization loss 1 这是什么 我知道什么是正则化 使网络善于通过各种方法 例如 dro
  • GreenDAO支持表之间的多种关系

    我一直在尝试使用 GreenDAO 创建数据库模型 当我尝试在不同表之间创建多个关系时 问题就开始了 基本上 我有一个Message桌子 一个Conversation表和一个User table 用户有一个消息列表 并且该消息有一个父对话
  • printf 命令导致段错误? [复制]

    这个问题在这里已经有答案了 当我尝试初始化一个大型的二维字符数组时 它工作得很好 但是当我添加一个简单的打印命令时 它给了我一个分段错误 关于为什么会发生这种情况有什么想法吗 include
  • 如何将 Zlib 与 Cmake 链接

    我试图将我的文件与 zlib 库链接 但仍然得到 对 deflateInit 的未定义引用 我目前正在使用CLion 已从主页下载了zLib文件并将其添加到项目中 这就是我的 CmakeLists txt 的样子 cmake minimum