bcc32: mehrere Fehler:



  • Hallo, einen Code, welchen ich geschrieben habe, kann ich mit VC6 wunderbar compilen. Versuche ich es jedoch mit BCC55 macht er große Probleme. Wichtig ist evtl. zu wissen, dass ich die libcurl und expat verwende. Includedateien und Libaries sind in den entsprechenden Verzeichnissen. Hier die Fehler:

    C:\Borland\BCC55\Bin>bcc32 grabber.c
    Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
    grabber.c:
    Error E2184 c:\Borland\Bcc55\include\curl/curl.h 223: Enum syntax error
    Error E2040 c:\Borland\Bcc55\include\curl/curl.h 540: Declaration terminated inc
    orrectly
    Error E2190 c:\Borland\Bcc55\include\curl/curl.h 540: Unexpected }
    Error E2190 c:\Borland\Bcc55\include\curl/curl.h 540: Unexpected }
    Error E2303 c:\Borland\Bcc55\include\curl/curl.h 540: Type name expected
    Error E2184 c:\Borland\Bcc55\include\curl/curl.h 607: Enum syntax error
    Error E2040 c:\Borland\Bcc55\include\curl/curl.h 627: Declaration terminated inc
    orrectly
    Error E2190 c:\Borland\Bcc55\include\curl/curl.h 627: Unexpected }
    Error E2190 c:\Borland\Bcc55\include\curl/curl.h 627: Unexpected }
    Error E2303 c:\Borland\Bcc55\include\curl/curl.h 627: Type name expected
    Error E2139 c:\Borland\Bcc55\include\curl/curl.h 633: Declaration missing ;
    Error E2303 c:\Borland\Bcc55\include\curl/easy.h 30: Type name expected
    Error E2303 c:\Borland\Bcc55\include\curl/multi.h 123: Type name expected
    Warning W8065 grabber.c 13: Call to function 'strcmp' with no prototype in funct
    ion elementstart
    Warning W8065 grabber.c 15: Call to function 'strcmp' with no prototype in funct
    ion elementstart
    Warning W8065 grabber.c 19: Call to function 'strcmp' with no prototype in funct
    ion elementstart
    Warning W8065 grabber.c 23: Call to function 'strcmp' with no prototype in funct
    ion elementstart
    Warning W8057 grabber.c 28: Parameter 'userData' is never used in function eleme
    ntstart
    Warning W8057 grabber.c 31: Parameter 'userData' is never used in function eleme
    ntend
    Warning W8057 grabber.c 31: Parameter 'name' is never used in function elementen
    d
    Warning W8065 grabber.c 40: Call to function 'memcpy' with no prototype in funct
    ion parse_data
    Error E2140 grabber.c 56: Declaration is not allowed here in function main
    Error E2140 grabber.c 58: Declaration is not allowed here in function main
    Error E2451 grabber.c 63: Undefined symbol 'CURLOPT_URL' in function main
    Warning W8065 grabber.c 63: Call to function 'curl_easy_setopt' with no prototyp
    e in function main
    Error E2451 grabber.c 64: Undefined symbol 'CURLOPT_NOPROGRESS' in function main
    
    Warning W8065 grabber.c 64: Call to function 'curl_easy_setopt' with no prototyp
    e in function main
    Error E2451 grabber.c 65: Undefined symbol 'CURLOPT_MUTE' in function main
    Warning W8065 grabber.c 65: Call to function 'curl_easy_setopt' with no prototyp
    e in function main
    Error E2451 grabber.c 66: Undefined symbol 'CURLOPT_WRITEFUNCTION' in function m
    ain
    Warning W8065 grabber.c 66: Call to function 'curl_easy_setopt' with no prototyp
    e in function main
    Error E2451 grabber.c 67: Undefined symbol 'CURLOPT_FILE' in function main
    Warning W8065 grabber.c 67: Call to function 'curl_easy_setopt' with no prototyp
    e in function main
    *** 20 errors in Compile ***
    
    C:\Borland\BCC55\Bin>
    

    Wo liegt mein Fehler?

    solanum



  • Hallo!
    Das ist schon ein bißchen komisch,das der Header die beschriebenen Fehler verursachen soll,zumal schon die dritte Meldung völlig abwegig ist.
    Hast du dir schon die Patches von der Borland-Homepage mal heruntergeladen?Das könnte die Ursache sein,auch wenn es unwahrscheinlich ist.
    Dann versuch mal deine Datei bcc32.cfg nur auf -I und -L zu reduzieren(bei mir steht auch nicht mehr drin),und mit
    bcc32 -Q -w- grabber.c|more
    das ganze laufen zu lassen.Denn mir fehlt leider socket.h,aber es erscheinen keinerlei Fehler in curl.h
    Hat es eigentlich einen Grund,warum du eine *.c-Datei benutzt?Versuch sie doch mal bitte auf *.cpp umzustellen,da der Compiler auch von der Dateiendung beeinflußt wird(oder du benutzt -P um immer nach C++ Regeln arbeiten zu lassen).
    Wenn das alles nichts hilft,so wirst du wahrscheinlich mal einen Teil des Quellcodes posten müssen,die Header sind jedenfalls aus meiner Sicht ok.
    g_e.



  • Na ja, der Code stimmt schon, da er mit VC6 ja compiled werden kann. Allerdings habe ich auch die Lib mit VC6 compiled. Könnte dies Probleme machen? Wie compile ich sie mit dem BCC32?

    solanum



  • Das der Code mit VC++ 6.0 läuft,nun ja,kann man sehen wie man will.Ich glaube,der bcc32 ist näher am Stndart dran,aber im Grunde sollte das egal sein.Poste mal bitte alle Optionen,die du beim VC++ für den Compiler angegeben hast,dann kann ich dir die äquivalenten Befehle zum bcc sagen.
    Die Libs werden später vielleicht noch ein Problem werden,wenn es ans linken geht.Aber der Compiler an sich,dessen Fehlermeldungen du geschrieben hast,hat damit eigentlich nichts zu tun.Wenn Fehler im Quelltext gefunden werden,bricht der Compiler ab,und ruft den Linker gar nicht mehr auf,daher ist es derzeit noch kein Problem.
    Zum konvertieren der Libs wird später sicherlich Coff2omf nötig sein,was beim den FCLT dabei ist.
    Noch mal zu den Patches:hast du die schon?
    MFG,
    g_e.



  • Habe nun erst einmal erkannt, dass mein Curl nicht mehr aktuell war. Mit den neuen Header Dateien bringt er nurnoch die Fehler, dass er sys/time.h und sys/socket.h einbinden will. Allerdings progammiere ich doch unter Windows! Könnte dies evtl. daran liegen, dass ich noch die Libs von der alten Curl verwende. So oder so: Wie compile ich die Libs mit dem BCC55?

    solanum



  • Ich denke,das du Coff2omf in diesem Fall benutzen solltest.
    Dazu startest du es mit
    coff2omf -q -lib:ms [Eingabe-lib] [Ausgabe-Lib]
    leider habe ch mit dem Werkzeug noch keine Erfahrungen,daher kann ich dir auch nur diese Kommandozeile nennen.
    Aber sicherlich solltest du dir ersteinmal die Header-Besorgen,denn der Compiler benötigt sie.Nebenbei habe ich noch keinen Fall erlebt,in welchen der Compiler die Libs benötite,die angabe in der CFG-Datei erscheint mir eher nur für ilink32 zu sein,welches die in jedem Fall benötigt.
    MFG,
    g_e.



  • Hm, und woher bekomme ich die sys/socket.h? Die time.h habe ich aus VC geholt.



  • Ok,da ist ein anderes Problem.Der Header von VS könnte dir auch Probleme bereiten,weil manchmal darin Angaben für die Compiler enthalten sind.
    Versuch mal in borland.public.cppbuilder.commandlinetools mehr Info'szu bekommen.
    Ich habe gerade geschaut:
    www.sockets.com scheint mir recht interessant in diesem Zusammenhang.
    g_e.


Anmelden zum Antworten