ZLIP kompilieren?



  • Hi danke für die Antwort.

    sondern die Dateien zu deinem Projekt hinzufügen ("add file(s)") und getrennt kompilieren lassen

    Keine Ahnung wie das geht 😞 oder wie ich das machen soll.



  • Rechte Maustaste auf Projektnamen in der Projektverwaltung -> Hinzufügen. Im Dateiauswahldialog den Dateifilter auf C-Datei (*.c) stellen und die C-Quellcode Dateien hinzufügen.
    Alternativ kannst du das auch über das Hauptmenü machen (Projekt -> Dem Projekt hinzufügen). Noch schneller geht´s mit Shift-F11.



  • Danke...

    Jetzt kommt die Fehlermeldung

    [bcc32 Fehler] Main.cpp(28): E2451 Undefiniertes Symbol 'unzFile'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(28): E2379 In Anweisung fehlt ;
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(29): E2451 Undefiniertes Symbol 'archive'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(38): E2268 Aufruf der undefinierten Funktion 'unzLocateFile'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(39): E2451 Undefiniertes Symbol 'UNZ_OK'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(43): E2268 Aufruf der undefinierten Funktion 'unzClose'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(49): E2451 Undefiniertes Symbol 'unz_file_info'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(49): E2379 In Anweisung fehlt ;
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(50): E2268 Aufruf der undefinierten Funktion 'unzGetCurrentFileInfo'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(50): E2451 Undefiniertes Symbol 'info'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(60): E2268 Aufruf der undefinierten Funktion 'unzClose'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(66): E2268 Aufruf der undefinierten Funktion 'unzOpenCurrentFile'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(67): E2268 Aufruf der undefinierten Funktion 'unzOpenCurrentFilePassword'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(73): E2268 Aufruf der undefinierten Funktion 'unzClose'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(79): E2268 Aufruf der undefinierten Funktion 'unzReadCurrentFile'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(85): E2268 Aufruf der undefinierten Funktion 'unzCloseCurrentFile'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(86): E2268 Aufruf der undefinierten Funktion 'unzClose'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(92): E2268 Aufruf der undefinierten Funktion 'unzCloseCurrentFile'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    [bcc32 Fehler] Main.cpp(93): E2268 Aufruf der undefinierten Funktion 'unzClose'
      Vollständiger Parser-Kontext
        Main.cpp(25): Analyse: int TMainForm::readArchivedFile(const std::string &,const std::string &,const std::string &,void * *,unsigned int *)
    

    habe die Datei aus dem Verzeichnis ..\zlib-1.2.8\contrib\minizip
    minizip.c
    miniunz.c
    unzip.c

    eingebunden.
    Wie komme ich jetzt an die Funktion? Oder Fehlt noch was um Minizip zuhaben?



  • Klar fehlt da was... das minizip ist ja nur ein "add on" für die Zip-Funktionalität, du musst natürlich auch die Dateien für Basisfunktionen zum Projekt hinzufügen. Das sind fast alle .h/.c aus dem Root Verzeichnis des zlib Archivs.



  • Ja...

    Die Probleme fangen hier schon an

    [bcc32 Fehler] zconf.h(377): E2015 Mehrdeutigkeit zwischen 'Byte' und 'System::Byte'
      Vollständiger Parser-Kontext
        Main.cpp(10): #include H:\MyApps\zlib-1.2.8\zlib.h
        zlib.h(34): #include H:\MyApps\zlib-1.2.8\zconf.h
    

    wen ich dann

    ...
       typedef Byte  FAR Bytef;
    ...
    

    ändere in

    ...
       typedef ::Byte  FAR Bytef;
    ...
    

    und folgende *.h Dateien eingebunden

    #include "zlib.h"
    #include "zip.h"
    #include "unzip.h"
    #include "ioapi.h"
    

    dann kommen sehr viel Fehler...

    [bcc32 Warnung] winnt.h(14984): W8019 Code hat keine Auswirkung
      Vollständiger Parser-Kontext
        miniunz.c(66): #include H:\MyApps\zlib-1.2.8\contrib\minizip\iowin32.h
        iowin32.h(14): #include c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\sdk\windows.h
        windows.h(186): #include c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\sdk\windef.h
        windef.h(182): #include c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\sdk\winnt.h
    [bcc32 Warnung] miniunz.c(159): W8065 Aufruf der Funktion 'mymkdir' ohne Prototyp
    [bcc32 Warnung] miniunz.c(174): W8065 Aufruf der Funktion 'mymkdir' ohne Prototyp
    [bcc32 Warnung] miniunz.c(357): W8065 Aufruf der Funktion 'mymkdir' ohne Prototyp
    [bcc32 Warnung] miniunz.c(380): W8065 Aufruf der Funktion 'fopen64' ohne Prototyp
    [bcc32 Warnung] miniunz.c(380): W8069 Nicht-übertragbare Zeigerkonvertierung
    [bcc32 Warnung] miniunz.c(411): W8065 Aufruf der Funktion 'fopen64' ohne Prototyp
    [bcc32 Warnung] miniunz.c(411): W8069 Nicht-übertragbare Zeigerkonvertierung
    [bcc32 Warnung] miniunz.c(418): W8065 Aufruf der Funktion 'makedir' ohne Prototyp
    [bcc32 Warnung] miniunz.c(420): W8065 Aufruf der Funktion 'fopen64' ohne Prototyp
    [bcc32 Warnung] miniunz.c(420): W8069 Nicht-übertragbare Zeigerkonvertierung
    [bcc32 Warnung] miniunz.c(455): W8065 Aufruf der Funktion 'change_file_date' ohne Prototyp
    [bcc32 Warnung] miniunz.c(472): W8004 'ratio' wurde ein Wert zugewiesen, der nie verwendet wird
    [bcc32 Warnung] miniunz.c(494): W8065 Aufruf der Funktion 'do_extract_currentfile' ohne Prototyp
    [bcc32 Warnung] miniunz.c(509): W8004 'fout' wurde ein Wert zugewiesen, der nie verwendet wird
    [bcc32 Warnung] miniunz.c(527): W8065 Aufruf der Funktion 'do_extract_currentfile' ohne Prototyp
    [bcc32 Warnung] miniunz.c(531): W8004 'err' wurde ein Wert zugewiesen, der nie verwendet wird
    [bcc32 Warnung] miniunz.c(552): W8065 Aufruf der Funktion 'do_banner' ohne Prototyp
    [bcc32 Warnung] miniunz.c(555): W8065 Aufruf der Funktion 'do_help' ohne Prototyp
    [bcc32 Warnung] miniunz.c(638): W8065 Aufruf der Funktion 'do_list' ohne Prototyp
    [bcc32 Warnung] miniunz.c(642): W8065 Aufruf der Funktion '_chdir' ohne Prototyp
    [bcc32 Warnung] miniunz.c(652): W8065 Aufruf der Funktion 'do_extract' ohne Prototyp
    [bcc32 Warnung] miniunz.c(654): W8065 Aufruf der Funktion 'do_extract_onefile' ohne Prototyp
    bcc32 Befehlszeile für "H:\MyApps\zlib-1.2.8\contrib\minizip\minizip.c"
      c:\program files (x86)\embarcadero\rad studio\11.0\bin\bcc32.exe -D_DEBUG -D_RTLDLL;USEPACKAGES -n.\Win32\Debug -I"c:\program files 
      (x86)\embarcadero\rad studio\11.0\include\windows\crtl\DE";"c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\rtl\DE";
      H:\MyApps\zlib-1.2.8;"c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\vcl";H:\MyApps\zlib-1.2.8;
      H:\MyApps\zlib-1.2.8\contrib\minizip;H:\ZIPTest;"C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\include\boost_1_39\boost\tr1\tr1";"C:\Program 
      Files (x86)\Embarcadero\RAD Studio\11.0\include\boost_1_39";"c:\program files (x86)\embarcadero\rad studio\11.0\include";"c:\program files 
      (x86)\embarcadero\rad studio\11.0\include\dinkumware";"c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\crtl";"c:\program files 
      (x86)\embarcadero\rad studio\11.0\include\windows\sdk";"c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\rtl";"c:\program files 
      (x86)\embarcadero\rad studio\11.0\include\windows\vcl";"C:\Program Files (x86)\FastReports\LibD18";"C:\Program Files 
      (x86)\Raize\CS5\Lib\RS-XE4\Win32";C:\AdvMemo;H:\MyApps\zlib-1.2.8\include -y -Q -k -r- -c -tM -tU -tW -C8 -o.\Win32\Debug\minizip.obj -w-par -Od -v 
      -vi- -H=.\Win32\Debug\ZIPTest.pch -H H:\MyApps\zlib-1.2.8\contrib\minizip\minizip.c 
    
    [bcc32 Warnung] winnt.h(14984): W8019 Code hat keine Auswirkung
      Vollständiger Parser-Kontext
        minizip.c(65): #include H:\MyApps\zlib-1.2.8\contrib\minizip\iowin32.h
        iowin32.h(14): #include c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\sdk\windows.h
        windows.h(186): #include c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\sdk\windef.h
        windef.h(182): #include c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\sdk\winnt.h
    [bcc32 Warnung] minizip.c(158): W8065 Aufruf der Funktion 'fopen64' ohne Prototyp
    [bcc32 Warnung] minizip.c(158): W8069 Nicht-übertragbare Zeigerkonvertierung
    [bcc32 Warnung] minizip.c(189): W8065 Aufruf der Funktion 'fopen64' ohne Prototyp
    [bcc32 Warnung] minizip.c(189): W8069 Nicht-übertragbare Zeigerkonvertierung
    [bcc32 Warnung] minizip.c(228): W8065 Aufruf der Funktion 'fopen64' ohne Prototyp
    [bcc32 Warnung] minizip.c(228): W8069 Nicht-übertragbare Zeigerkonvertierung
    [bcc32 Warnung] minizip.c(232): W8065 Aufruf der Funktion 'fseeko64' ohne Prototyp
    [bcc32 Warnung] minizip.c(233): W8065 Aufruf der Funktion 'ftello64' ohne Prototyp
    [bcc32 Warnung] minizip.c(241): W8004 'n' wurde ein Wert zugewiesen, der nie verwendet wird
    [bcc32 Warnung] minizip.c(263): W8065 Aufruf der Funktion 'do_banner' ohne Prototyp
    [bcc32 Warnung] minizip.c(266): W8065 Aufruf der Funktion 'do_help' ohne Prototyp
    [bcc32 Warnung] minizip.c(339): W8065 Aufruf der Funktion 'check_exist_file' ohne Prototyp
    [bcc32 Warnung] minizip.c(344): W8065 Aufruf der Funktion 'check_exist_file' ohne Prototyp
    [bcc32 Warnung] minizip.c(411): W8065 Aufruf der Funktion 'filetime' ohne Prototyp
    [bcc32 Warnung] minizip.c(463): W8065 Aufruf der Funktion 'fopen64' ohne Prototyp
    [bcc32 Warnung] minizip.c(463): W8069 Nicht-übertragbare Zeigerkonvertierung
    [bcc32 Warnung] minizip.c(515): W8065 Aufruf der Funktion 'do_help' ohne Prototyp
    

    und so weiter... ?!?



  • Ich sehe da auf Anhieb keine Fehlermeldungen sonder nur Warnungen.
    Hast du folgendes oben in deinen zlib Dateien stehen?

    #ifdef __cplusplus
    extern "C" {
    #endif
    

    alternativ kannst du auch die includes der zlib Header in dein Projekt mit extern "C" umschließen. z. Bsp. so

    extern "C" {
      #include "zlib.h"
    }
    

    Damit sagst du deinm Projekt das jetzt C-Dateien kommen und kein C++.



  • Danke

    das mit

    extern "C" {
      #include "zlib.h"
    }
    

    hat schon mal die Warnung weg gemacht.

    Das steht in der zlib.h Datei

    ...
    #include "zconf.h"
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    ...
    

    So jetzt sind nur noch Fehlermeldung

    [ilink32 Fehler] Error: Nicht auflösbares externes '_fopen64' referenziert von H:\ZIPTEST\WIN32\DEBUG\IOAPI.OBJ
    [ilink32 Fehler] Error: Nicht auflösbares externes '_ftello64' referenziert von H:\ZIPTEST\WIN32\DEBUG\IOAPI.OBJ
    [ilink32 Fehler] Error: Nicht auflösbares externes '_fseeko64' referenziert von H:\ZIPTEST\WIN32\DEBUG\IOAPI.OBJ
    [ilink32 Fehler] Error: Nicht auflösbares externes '_inflateInit2_' referenziert von H:\ZIPTEST\WIN32\DEBUG\UNZIP.OBJ
    [ilink32 Fehler] Error: Nicht auflösbares externes '_inflate' referenziert von H:\ZIPTEST\WIN32\DEBUG\UNZIP.OBJ
    [ilink32 Fehler] Error: Nicht auflösbares externes '_inflateEnd' referenziert von H:\ZIPTEST\WIN32\DEBUG\UNZIP.OBJ
    [ilink32 Fehler] Error: Linken kann nicht ausgeführt werden
    

    So ...
    In meiner Main Datei habe ich jetzt drin stehen

    extern "C" {
    #include "zlib.h"
    #include "zconf.h"
    #include "zip.h"
    #include "unzip.h"
    #include "iowin32.h"
    #include "ioapi.h"
    }
    

    Und die folgenden Dateien sind im Projekt aufgenommen

    ioapi.c
    iowin32.c
    miniunz.c
    minizip.c
    zip.c
    unzip.c
    crc32.c
    


  • Da scheint bei dir mit den defines was schief zulaufen. Die von dir genannten Funktionen gibt es unter Windows eigentlich nicht. Normalerweise werden die über define auf die passenden WinAPI funktionen umgebogen. Siehe auch hier:
    https://github.com/jtkukunas/zlib/blob/master/contrib/minizip/ioapi.h
    Evtl. fehlt bei dir ein define?



  • Ja keine Ahnung was ich dahin schreiben soll!?!

    Manchmal kommen trotzdem Warnungen ...

    [bcc32 Warnung] miniunz.c(159): W8065 Aufruf der Funktion 'mymkdir' ohne Prototyp
    [bcc32 Warnung] miniunz.c(174): W8065 Aufruf der Funktion 'mymkdir' ohne Prototyp
    [bcc32 Warnung] miniunz.c(357): W8065 Aufruf der Funktion 'mymkdir' ohne Prototyp
    [bcc32 Warnung] miniunz.c(380): W8065 Aufruf der Funktion 'fopen64' ohne Prototyp
    [bcc32 Warnung] miniunz.c(380): W8069 Nicht-übertragbare Zeigerkonvertierung
    [bcc32 Warnung] miniunz.c(411): W8065 Aufruf der Funktion 'fopen64' ohne Prototyp
    [bcc32 Warnung] miniunz.c(411): W8069 Nicht-übertragbare Zeigerkonvertierung
    [bcc32 Warnung] miniunz.c(418): W8065 Aufruf der Funktion 'makedir' ohne Prototyp
    [bcc32 Warnung] miniunz.c(420): W8065 Aufruf der Funktion 'fopen64' ohne Prototyp
    [bcc32 Warnung] miniunz.c(420): W8069 Nicht-übertragbare Zeigerkonvertierung
    [bcc32 Warnung] miniunz.c(455): W8065 Aufruf der Funktion 'change_file_date' ohne Prototyp
    [bcc32 Warnung] miniunz.c(472): W8004 'ratio' wurde ein Wert zugewiesen, der nie verwendet wird
    [bcc32 Warnung] miniunz.c(494): W8065 Aufruf der Funktion 'do_extract_currentfile' ohne Prototyp
    [bcc32 Warnung] miniunz.c(509): W8004 'fout' wurde ein Wert zugewiesen, der nie verwendet wird
    [bcc32 Warnung] miniunz.c(527): W8065 Aufruf der Funktion 'do_extract_currentfile' ohne Prototyp
    [bcc32 Warnung] miniunz.c(531): W8004 'err' wurde ein Wert zugewiesen, der nie verwendet wird
    [bcc32 Warnung] miniunz.c(552): W8065 Aufruf der Funktion 'do_banner' ohne Prototyp
    [bcc32 Warnung] miniunz.c(555): W8065 Aufruf der Funktion 'do_help' ohne Prototyp
    [bcc32 Warnung] miniunz.c(638): W8065 Aufruf der Funktion 'do_list' ohne Prototyp
    [bcc32 Warnung] miniunz.c(642): W8065 Aufruf der Funktion '_chdir' ohne Prototyp
    [bcc32 Warnung] miniunz.c(652): W8065 Aufruf der Funktion 'do_extract' ohne Prototyp
    [bcc32 Warnung] miniunz.c(654): W8065 Aufruf der Funktion 'do_extract_onefile' ohne Prototyp
    [bcc32 Warnung] winnt.h(14984): W8019 Code hat keine Auswirkung
      Vollständiger Parser-Kontext
        minizip.c(65): #include H:\MyApps\zlib-1.2.8\contrib\minizip\iowin32.h
        iowin32.h(14): #include c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\sdk\windows.h
        windows.h(186): #include c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\sdk\windef.h
        windef.h(182): #include c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\sdk\winnt.h
    [bcc32 Warnung] minizip.c(158): W8065 Aufruf der Funktion 'fopen64' ohne Prototyp
    [bcc32 Warnung] minizip.c(158): W8069 Nicht-übertragbare Zeigerkonvertierung
    [bcc32 Warnung] minizip.c(189): W8065 Aufruf der Funktion 'fopen64' ohne Prototyp
    [bcc32 Warnung] minizip.c(189): W8069 Nicht-übertragbare Zeigerkonvertierung
    [bcc32 Warnung] minizip.c(228): W8065 Aufruf der Funktion 'fopen64' ohne Prototyp
    [bcc32 Warnung] minizip.c(228): W8069 Nicht-übertragbare Zeigerkonvertierung
    [bcc32 Warnung] minizip.c(232): W8065 Aufruf der Funktion 'fseeko64' ohne Prototyp
    [bcc32 Warnung] minizip.c(233): W8065 Aufruf der Funktion 'ftello64' ohne Prototyp
    [bcc32 Warnung] minizip.c(241): W8004 'n' wurde ein Wert zugewiesen, der nie verwendet wird
    [bcc32 Warnung] minizip.c(263): W8065 Aufruf der Funktion 'do_banner' ohne Prototyp
    [bcc32 Warnung] minizip.c(266): W8065 Aufruf der Funktion 'do_help' ohne Prototyp
    [bcc32 Warnung] minizip.c(339): W8065 Aufruf der Funktion 'check_exist_file' ohne Prototyp
    [bcc32 Warnung] minizip.c(344): W8065 Aufruf der Funktion 'check_exist_file' ohne Prototyp
    [bcc32 Warnung] minizip.c(411): W8065 Aufruf der Funktion 'filetime' ohne Prototyp
    [bcc32 Warnung] minizip.c(463): W8065 Aufruf der Funktion 'fopen64' ohne Prototyp
    [bcc32 Warnung] minizip.c(463): W8069 Nicht-übertragbare Zeigerkonvertierung
    [bcc32 Warnung] minizip.c(515): W8065 Aufruf der Funktion 'do_help' ohne Prototyp
    
    u.s.w. 83 Stück
    

    Ja keine Ahnung was ich machen soll.
    Gibt es eigentlich ein Unterschied zwischen der DLL Datei und das selber zu Kompilieren?



  • Ja sorry für den Eintrag oben. Habe da ein Ungültigen Path gehabt.

    Da ich dann Gegoogelt habe und auf das gestoßen bin

    Ja, könnte hatte da auch mal ein Problem mit, das er nicht übersetzt hat, wenn der Pfad nicht gefunden wurde, auch wenn der eigentlich nicht nötig ist.

    Jetzt wo der Path weg ist kommen nur die Fehlermeldungen noch


Anmelden zum Antworten