2013-08-09 10 views
20

Próbuję skompilować oprogramowanie Blue Gene Q za pomocą IBM XL kompilatorów i mam ten komunikat o błędzie:błąd Kompilacja - brakuje zlib.h

"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 zaktualizowaną LD_LIBRARY_PATH z $HOME/zlib/include

Czy brakuje mi czegoś?

Odpowiedz

7

Brakuje, aby ustawić ścieżkę zawierającą miejsce, w którym umieszczasz pliki nagłówkowe zlib. Ustawienie zmiennej środowiskowej LD_LIBRARY_PATH służy do dynamicznego łączenia współdzielonych obiektów (bibliotek DLL, czyli plików kończących się .so).

Większość kompilatorów ma opcję -I do dodawania ścieżek dołączania do wyszukiwania. Prawdopodobnie chcesz użyć -L, aby poinformować kompilator, gdzie znaleźć bibliotekę, z którą chcesz się połączyć, i użyć polecenia -l, aby poinformować kompilator o połączeniu z zlib.

E.g.

$ c++ -I$HOME/zlib/include some_file.cpp -L$HOME/zlib/lib -lz 
+2

Nieprawidłowy. Odpowiedź Kernoba jest poprawna. – SmallChess

+1

@SmallChess Biorąc pod uwagę, że PO mówi "Mam *** zainstalowałem *** nową wersję ZliB ..." (podkreślenie moje) i zaznaczył moją odpowiedź jako zaakceptowaną, być może możesz wyjaśnić, dlaczego? To, że odpowiedź ma więcej głosów, nie oznacza, że ​​jest poprawne. –

+1

Mam wrażenie, że większość ludzi, którzy głosowali za odpowiedzią Kernoba, nie w pełni przeczytała pytanie. – searchengine27

64

Brakuje zlib.h plik nagłówka, na Linux zainstalować go za pomocą:

sudo apt-get install libz-dev 

na Fedora: sudo dnf install libz-devel

ten zapewni pliki wspierać rozwój dla biblioteki realizującego metodę kompresji deflate znalezione w gzip i PKZIP.

Jeśli masz już bibliotekę zlib, upewnij się, że kompilujesz źródła kodu pod numerem -lz. Zobacz: How to fix undefined references to inflate/deflate functions?.

+2

Miałem ten sam problem z Fedorą 25. Rozwiązaniem jest 'sudo dnf install libz-devel' –

Powiązane problemy