一、報錯發生的環境
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