一、报错发生的环境
1、Clion在linux下,使用CMake;
2、使用zlib.h中的gzopen()、gzdopen()函数。
书写的代码如图所示
二、编译报错Message
三、解决方案
在CMakeLists.txt文件中,添加
target_link_libraries(u_project_name z)//其中第一个参数u_project_name是你的项目名称,第二个参数z指的就是zlib
此外,问题的前提是已经安装了zlib包,如果还没有得到解决,检查一下是否安装了zlib。若没有,通过如下命令安装即可
sudo apt-get install zlib1g-dev
四、原理说明
1、Linux下使用C/C++的时候,undefined reference to XXX的问题原因:
就是在链接的时候,链接器找不到XXX这个文件或者类或者函数的定义了。
2、在Linux下使用Clion的时候,不同于Makefile,CMake编译器只能通过CMakeLists.txt获取编译上下文,故在CMakeLists修改。那么此针对zlib的问题就可以引申出许多类似的问题。
【reference】
[1] https://stackoverflow.com/questions/53298492/how-to-link-zlib-with-cmake