2012-02-04 13 views
7

Mój program C wykorzystuje niektóre funkcje zlib (jak gzopen, gzread). Zawarłem plik nagłówkowy zlib.h w moim programie i dodałem opcję -lz podczas kompilacji, ale nadal dostaję błąd, że funkcje gz mają niezdefiniowane odniesienia. Używam kubuntu 11.10 i mam zainstalowane następujące pakiety: libgh-zlib-dev, zlib1g-dbg, zlib1g i zlib1g-dev.niezdefiniowane odniesienie do błędu `gzopen`

Próbowałem zmienić pozycję polecenia łączenia, ale bez powodzenia. Oto jeden mam w tej chwili:

CFLAGS = -Wall -pthread -lm -lZ -std = c99 -Wextra

+5

Proszę pokazać swoje polecenie łączenia. Mogłeś umieścić '-lz' w niewłaściwym miejscu. –

+0

jak się dokładnie kompilujesz? CFLAGS są używane przez skrypty generowane automatycznie, a nie bezpośrednio przez gcc ... –

+0

@HubertKario - CFLAGS jest rozumiane (i używane) przez 'make'; jest dostarczany do kompilatora C, stosownie do potrzeb. –

Odpowiedz

9

je jako część LDFLAGS, powinno to wyglądać tak:

gcc -Wall -pthread src/main.c -lm -lz -std=c99 -Wextra -o main