Compilation error - missing zlib.h

后端 未结 5 1357
灰色年华
灰色年华 2021-01-30 10:22

I am trying to compile software on Blue Gene Q using IBM XL compilers and I got this error message:

\"iostreams/zlib.cpp\", line 19.10: 1540-0836 (S) The #includ         


        
相关标签:
5条回答
  • 2021-01-30 10:36

    You are missing zlib.h header file, on Linux install it via:

    sudo apt-get install libz-dev
    

    As a matter of fact, the module presents as zlib1g-dev in the apt repo, so this is the up-to-date call (Feb 2019):

    sudo apt install zlib1g-dev
    

    On Fedora: sudo dnf install zlib-devel (in older versions: sudo dnf install libz-devel).

    This will provide the development support files for a library implementing the deflate compression method found in gzip and PKZIP.

    If you've already zlib library, make sure you're compiling your code sources with -lz. See: How to fix undefined references to inflate/deflate functions?.

    0 讨论(0)
  • 2021-01-30 10:44

    In openSUSE 19.2 installing the patterns-hpc-development_node package fixed this issue for me.

    0 讨论(0)
  • 2021-01-30 10:48

    I also had the same problem. Then I installed the zlib, still the problem remained the same. Then I added the following lines in my .bashrc and it worked. You should replace the path with your zlib installation path. (I didn't have root privileges).

    export PATH =$PATH:$HOME/Softwares/library/Zlib/zlib-1.2.11/
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/Softwares/library/Zlib/zlib-1.2.11/lib/
    export LIBRARY_PATH=$LIBRARY_PATH:$HOME/Softwares/library/Zlib/zlib-1.2.11/lib/
    export C_INCLUDE_PATH=$HOME/Softwares/library/Zlib/zlib-1.2.11/include/
    export CPLUS_INCLUDE_PATH=$HOME/Softwares/library/Zlib/zlib-1.2.11/include/
    export PKG_CONFIG_PATH=$HOME/Softwares/library/Zlib/zlib-1.2.11/lib/pkgconfig
    
    0 讨论(0)
  • 2021-01-30 10:58

    Maybe you can download zlib.h from https://dev.w3.org/Amaya/libpng/zlib/zlib.h, and put it in the directory to solve the problem.

    0 讨论(0)
  • 2021-01-30 11:01

    You have installed the library in a non-standard location ($HOME/zlib/). That means the compiler will not know where your header files are and you need to tell the compiler that.

    You can add a path to the list that the compiler uses to search for header files by using the -I (upper-case i) option.

    Also note that the LD_LIBRARY_PATH is for the run-time linker and loader, and is searched for dynamic libraries when attempting to run an application. To add a path for the build-time linker use the -L option.

    All-together the command line should look like

    $ c++ -I$HOME/zlib/include some_file.cpp -L$HOME/zlib/lib -lz
    
    0 讨论(0)
提交回复
热议问题