我试图将我的文件与 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(使用前将#替换为@)