Użycie zlib w Code::Blocks

0

Mam problem z użyciem biblioteki zlib w Code::Blocks 12.11.

Zrobiłem tak:

  1. Pobrałem bibliotekę zlib stąd: http://zlib.net/zlib128.zip
  2. Wypakowałem paczkę a następnie zawartość folderu przekopiowałem do: C:\Program Files (x86)\CodeBlocks\MinGW\include\zlib
  3. Utworzyłem projekt w Code::Blocks i dałem nagłówek "#include <zlib/zlib.h>
  4. Dodałem "-lz" w Compiler settings -> Other options.

A i tak dostaję komunikat błędu:
"undefined reference to `uncompress"

Już naprawdę nie wiem co robię źle, czy ktoś mógłby mnie nakierować ?

0

Nie dodałeś do linkera bibliotek .a

0

Sęk w tym, że nie widzę żadnych bibliotek *.a a wypakowanym folderze.

Nikt nic nie poradzi ? Siedzę nad tym od godziny 8 :(

0

Wrzuciles .dllki do folderu z .exekiem?

0

Jakie dll'ki ? W pobranej paczce z biblioteką zlib nie ma żadnych bibliotek *.a, anie żadnych dll. Pamiętam kiedyś korzystałem z tej biblioteki w Qt, dawałem nagłówek #include<QtZlib/zlib.h> i wystarczyło, nie musiałem nic linkować, ani dodawać żadnych dll do folderów z exe'kiem, w dodatku wyczytałem w Internecie, że biblioteka zlib nie wymaga żadnych dll.

1

Internet radzi...

  1. http://www.zlib.net/ -> ctrl+f -> download -> compilled DLL i sciagamy, chyba ze bardzo lubisz kompilacje malutkich bibliotek, to wtedy poczytaj manual.
  2. Rozpakowujemy archiwum, robimy backupa dllki najlepiej w jakims sympatycznym miejscu, typu E:\Libs.
  3. Teraz mamy dwa wyjscia, wrzucic header/lib do folderow mingwa lub wrzucic to tam, gdzie backup dllki i poustawiac sciezki w IDE do tego miejsca.
  4. Kopiujemy dllke do folderu z exe
  5. Tworzymy nowy projekt, dodajemy #include <sralalal>, oraz opcje linkera i uruchamiamy.
0

Strasznie mi zależy, aby mój program nie używał żadnych dll, tylko wszystko miał podlinkowane statycznie :( Nie mam już pojęcia dlaczego to nie działa :(

0

Ponieważ twój sposób wymaga dołączenia do końcowego 'exe' odpowiednich 'dll', a niestety ten projekt wymaga aby końcowy program nie wymagał żadnych dll.

0

To wpisz w google mingw static linking i zobacz jakie parametry linkera sa do tego potrzebne.
Mozesz tez podziubac w kodzie biblioteki, ale tu odsylam do manuala.

0

Siedze już nad któryś dzień i nadal nie wiem jak prawidłowo użyć zlib w C::B tak aby nie wymagał on żadnych dll :(

@n0name_l zrobiłem tak jak kazałeś, pobrałem skompilowaną biblioteką i postępowałem z instrukcją, którą tam znalazłem:

Using ZLIB1.DLL with gcc/MinGW

  1. Install the supplied header files "zlib.h" and "zconf.h"
    into the INCLUDE directory.

  2. Copy the supplied library file "zdll.lib" to "libzdll.a":
    cp lib/zdll.lib lib/libzdll.a

    OR

2' Build the import library from the supplied "zlib.def":
dlltool -D zlib1.dll -d lib/zlib.def -l lib/libzdll.a

  1. Install "libzdll.a" into the LIB directory.

  2. Add "libzdll.a" to your project, or use the -lzdll option.

Teraz mój program działa kiedy w folderze z 'exe' umieszcze 'zlib1.dll'
Tak, jak mówiłeś chciałem dowiązać bibliotekę statycznie więc dałem w ustawieniach linkera '-static-lzdll' i tym razem dostaje komunikat błędu: unrecognized command line option '-static-lzdll', co robię nie tak ?

1

Z tego co pamiętam, wystarczy dodać wszystkie pliki źródłowe zliba do projektu, załączyć odpowiednie nagłówki i tyle.

1 użytkowników online, w tym zalogowanych: 0, gości: 1