Błąd kompilacji-brak zlib.h

Próbuję skompilować oprogramowanie na Blue Gene Q przy użyciu kompilatorów IBM XL i dostałem komunikat o błędzie:

"iostreams/zlib.cpp", line 19.10: 1540-0836 (S) The #include file "zlib.h" is not found.
make[3]: *** [zlib.o] Error 1

Zainstalowałem nową wersję zlib i zaktualizowałem LD_LIBRARY_PATH z $HOME/zlib/include

Czy coś przeoczyłem?
Author: Machavity, 2013-08-09

5 answers

Zainstalowano bibliotekę w niestandardowej lokalizacji ($HOME/zlib/). Oznacza to, że kompilator nie będzie wiedział, gdzie znajdują się Twoje pliki nagłówkowe i musisz to powiedzieć kompilatorowi.

Możesz dodać ścieżkę do listy, której kompilator używa do wyszukiwania plików nagłówkowych, używając opcji -I (wielkie litery i).

Zauważ również, że LD_LIBRARY_PATH jest przeznaczony do linkera i loadera run-time i jest wyszukiwany w poszukiwaniu bibliotek dynamicznych podczas próby uruchomienia aplikacji. Aby dodać ścieżkę dla linker czasu budowy używa opcji -L.

Razem linia poleceń powinna wyglądać tak:

$ c++ -I$HOME/zlib/include some_file.cpp -L$HOME/zlib/lib -lz
 20
Author: Some programmer dude,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-14 09:03:22

Brakuje zlib.h pliku nagłówkowego, w Linuksie zainstaluj go przez:

sudo apt-get install libz-dev
W rzeczywistości moduł prezentuje się jako zlib1g-dev w Apt repo, więc jest to aktualne wywołanie (Luty 2019):
sudo apt install zlib1g-dev

Na Fedorze: sudo dnf install zlib-devel (w starszych wersjach: sudo dnf install libz-devel).

Zapewni to pliki wsparcia rozwoju dla biblioteki implementującej metodę kompresji deflate znajdującą się w gzip i PKZIP.

Jeśli masz już zlib bibliotekę, upewnij się, że kompilujesz źródła kodu z -lz. Zobacz: Jak naprawić nieokreślone odniesienia do funkcji inflate / deflate?.

 176
Author: kenorb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-20 11:06:56

Ja też miałem ten sam problem. Następnie zainstalowałem zlib, nadal problem pozostał ten sam. Następnie dodałem następujące linie w moim .bashrc i zadziałało. Ścieżkę należy zastąpić ścieżką instalacji zlib. (Nie miałem uprawnień roota).

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
Author: Bhanuday Sharma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-23 17:18:41

W openSUSE 19.2 instalacja pakietu patterns-hpc-development_node naprawiła ten problem.

 0
Author: Onkar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-09 16:44:01

Może ściągniesz zlib.h z https://dev.w3.org/Amaya/libpng/zlib/zlib.h , i umieścić go w katalogu, aby rozwiązać problem.

 0
Author: knowledgeispower,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-16 10:06:50