c++-要使用gzopen()、gzwrite()、gzclose()应该包含什么头文件?

问题描述

要使用gzopen()、gzwrite()、gzclose()应该包含什么头文件?

如题,
我在程序中使用了以上3个函数,但是不知道应该包含什么头文件,我包含了zlib.h

编译的时候提示:
undefined reference to 'gzopen()';
undefined reference to 'gzwrite()';
undefined reference to 'gzclose()';
是我用的库不对还是怎么回事呢?

解决方案

需要安装zlib压缩库

解决方案二:

# ./configure --host=arm-linux --build=i386-linux --target=arm --prefix=/usr/local/arm/libxml_arm CC=/usr/local/arm/4.1.1/bin/arm-9tdmi-linux-gnu-gcc --without-zlib

注:--without-zlib选项很重要,如果不加此选项,make的时候会提示如下错误:
Java代码 收藏代码

./.libs/libxml2.so: undefined reference to `gzopen'
./.libs/libxml2.so: undefined reference to `gzclose'
./.libs/libxml2.so: undefined reference to `deflate'
./.libs/libxml2.so: undefined reference to `gzrewind'
./.libs/libxml2.so: undefined reference to `gzwrite'
./.libs/libxml2.so: undefined reference to `crc32'
./.libs/libxml2.so: undefined reference to `deflateEnd'
./.libs/libxml2.so: undefined reference to `gzdopen'
./.libs/libxml2.so: undefined reference to `deflateInit2_'
./.libs/libxml2.so: undefined reference to `gzread'
collect2: ld returned 1 exit status

解决方案三:

zlib对应目录下有没有库文件。so等。
然后就是你的代码调用的地方是不是设置了库路径。

解决方案四:

man一下出的来么?

时间: 2024-10-29 08:44:03

c++-要使用gzopen()、gzwrite()、gzclose()应该包含什么头文件?的相关文章

graphics作图-求教如何运行包含graphics头文件的程序

问题描述 求教如何运行包含graphics头文件的程序 在codeblocks中包含了graphics头文件,但是在编译时却不能正常编译,显示没有找到路径.求教怎样才能正确地运行包含graphics的程序. 解决方案 下载borland c或者turbo c,因为graphic依赖dos,所以不是编译器的问题,肯定windows linux平台底层都不支持的. 解决方案二: NetBeans运行包含头文件的c程序

vs2010使用openssl包含的头文件问题

问题描述 vs2010使用openssl包含的头文件问题 vs2010使用openssl中包含的头文件<openssl/evp.h>中存放的是"../../crypt/evp/evp.h"在第一个"."处提示语法错误,急求帮助 解决方案 你需要把openssl的目录添加到你的工程属性的include目录中 解决方案二: 你需要把openssl的目录添加到你的工程属性的include目录中

程序设计方式 之 嵌套头文件包含方式

       一直以来写程序有个习惯,喜欢把常用的STL类,或者其他常用的类,变量,宏等定义到一个文件内,然后在使用其中一个类的地方包含这个文件.一直再使用,也一直存在困惑,这种设计方式的能否放心大胆的使用,对它始终心存畏惧,所有这些促使我完成这篇文章,并且经过种种测试,有足够的信心继续使用这种设计方式.        操作如下 定义base.h文件,包含基本的STL类,并且通过typedef建立不同的映射关系,以便减少不同的文件出现过多vector<string>之类的声明方式.当需要使用v

c语言问题-C语言的头文件有包含顺序吗?

问题描述 C语言的头文件有包含顺序吗? C语言的头文件有包含顺序吗?有的话,是什么呀,---------- 解决方案 有包含顺序,即使添加了#ifndef也不一定有用 一个合理的建议:所有的.h中不包含.h,放在CPP中包含.但是每个模块有一个特殊的共通头文件,只用于包含该模块使用的外部的头文件,并且所有的cpp文件必须是最先包含该头文件. 解决方案二: 标注库基本没有包含顺序(差不多都处理掉了), 可以任意使用 但是自己定义的就有了 解决方案三: c语言之头文件包含顺序问题 1.头文件的包含是

c语言头文件包含问题-关于头文件包含的问题,请教大家!

问题描述 关于头文件包含的问题,请教大家! 程序源文件中有两个头文件,头文件A中定义了一个结构体类型_tag_addr,并在头文件开头使用了#ifnodef #define预编译宏;头文件B中定义了一个结构体类型_tag_bddr,也在头文件开头使用了预编译宏,现在的问题是我要在头文件A中声明一个_tag_bddr类型的变量,在头文件B中声明一个_tag_addr类型的变量,所以要在头文件A开头包含头文件B,也要在头文件B中包含头文件A,但是这样做编译时头文件A报错,说是没有_tag_bddr类

C++头文件的包含顺序研究

一.<Google C++ 编程风格指南>里的观点        公司在推行编码规范,领导提议基本上使用<Google C++ 编程风格指南>.其中<Google C++ 编程风格指南>对于头文件的包含顺序是这样的:   Names and Order of Includes link ▽Use standard order for readability and to avoid hidden dependencies:C library, C++ library,

头文件 webkit-makefile 头文件包含问题

问题描述 makefile 头文件包含问题 我最近在看Android使用的Webkit库,发现webkit/WebCore/ForwardingHeaders/wtf/Forward.h文件中包含的头文件是#include <JavaScriptCore/Forward.h>,而JavaScriptCore路径下没有Forward.h,实际的路径是webkit/JavaScriptCore/wtf/Forward.h,我对Makefile不是特别熟悉,望高人指点!

浅析VC++中的头文件包含问题_C 语言

在一些大的工程中,可能会包含几十个基础类,免不了之间会互相引用(不满足继承关系,而是组合关系).也就是需要互相声明.好了,这时候会带来一些混乱.如果处理得不好,会搞得一团糟,根据我的经验,简单谈谈自已的处理办法: 编码时,我们一般会尽量避免include头文件,而是采用声明 class XXX.但有时候还是必须用Include头文件,那么,两者的划分在于什么呢? 应该是很明确的,但书上好像都少有提及. 首先:我们要明白为什么要用声明取代头文件包含:对了,是为了避免无必要的重编译(在头文件发生变更

C++类的设计习惯及头文件重复包含问题的解决

在设计一个类的时候,通常是将类的定义及类成员函数的声明放到头文件(即.h文件)中,将类中成员函数的实现放到源文件(即.cpp)中.对于animal类需要animal.h和animal.cpp两个文件,同样,对于fish类需要fish.h和fish.cpp.对于main()函数,我们把它单独放到EX10.cpp文件中. 往一个现有工程添加头文件(.h文件)或源文件(.cpp文件)有两种方式:一种是在打开的工程中,单击[File]→[New],在左边的Files标签页下,选择C++ Header F