bcc55 linkeroptionen



  • Hallo wissende.
    Ich benutze den BCC55 und wollte wissen wie man linker optionen an den linker übergibt.
    Andere Compiler leiten das doch mit

    #pragma comment(linker, "option")
    

    an den linker weiter, bcc sagt dazu nur:
    Warning W8094 mainhook.cpp 3: Incorrect use of #pragma comment( <type> [,"string"] )

    Wie macht man das sonst? Oder gibt einem der bcc garnicht die möglichkeit dazu?



  • pragma's sind vollkommen compiler-spezifisch, und somit für portable Kompilierung absolut ungeeignet.
    Willst du deinem Linker irgendwelche Optionen mitgeben, dann gibt es verschiedene Möglichkeiten:
    - du stellst sie in den Projektoptionen deiner IDE ein
    - du gibst sie dem Linker direkt als Kommandozeilenparameter mit
    - du kannst sie indirekt dem Linker über eine entsprechende Compileroption mitgeben (falls dieser die Funktionalität dafür bereitstellt)
    - du passt die Linkeroptionen im entsprechende makefile an (falls eines benutzt wird)



  • pragma's sind vollkommen compiler-spezifisch, und somit für portable Kompilierung absolut ungeeignet.

    deshalb wollte ich ja wissen wie des fürn bcc geht 🕶

    - du stellst sie in den Projektoptionen deiner IDE ein

    ich benutz keine ide

    - du passt die Linkeroptionen im entsprechende makefile an (falls eines benutzt wird)

    und auch kein Makefile 😉

    also, bei den compileroptionen gibt es folgende Option:

    -lx Set linker option

    aber keine Ahnung wie genau man das setzt. Weil meine Option mehr als 1 zeichen lang is (wegen dem einen x) und ich habs trotzdem schonmal probiert, aber es geht nicht 😕

    bei borland findet man auch keine doku oder sonst was (ich zumindest nicht)
    Vielleicht überseh ichs ja auch nur 😎



  • cMogli schrieb:

    also, bei den compileroptionen gibt es folgende Option:

    -lx Set linker option

    aber keine Ahnung wie genau man das setzt. Weil meine Option mehr als 1 zeichen lang is (wegen dem einen x)

    Das eine x ist auch nur ein Platzhalter. Wahrscheinlich heisst das einfach nur, dass du genau eine Linkeroption hinter -l schreiben kannst.

    cMogli schrieb:

    und ich habs trotzdem schonmal probiert, aber es geht nicht 😕

    Wenig hilreich. Was hast du genau probiert? Konkrete Kommandozeilen, sowie den Fehler angeben.

    cMogli schrieb:

    bei borland findet man auch keine doku oder sonst was (ich zumindest nicht)

    Wenn du einfach nur bcc32 bzw. ilink32 eingibst, bekommst du zumindest die Parameter mit kurzer Beschreibung.



  • ne sonst steht xxx dran, wenns ein string sein kann.
    hab -lnodefaultlib -l/nodefaultlib und alle variationen durchprobiert.



  • Und du bist dir sicher, dass der Borland Linker die Option 'nodefaultlib' kennt? Kann zumindest in der Optionsübersicht nichts davon erkennen. 'nodefaultlib' kenn ich lediglich vom MS Linker.



  • Hallo ich vermute du hast den freien BCC5.5. Zum Einstieg ins Programmieren
    empfehle ich dir eine freie, einfache IDE ( z.b. die VIDE ) damit du am Anfang
    auch Erfolgserlebnisse hast.
    Überigens ist die Standarteinstellung beim BCC5.5 für Win2000 optimiert. Dies
    läst sich anpassen.

    MfG f.-th.



  • @groovemaster: nein, ich bin mir nicht sicher. Habs einfach mal angenommen. Und weil ich wie schon erwähnt nirgends was wirklich hilfreiches gefunden hab, hab ichs auf gut glück ausprobiert

    @f.-th.: ja ich benutze den freien bcc5.5. Ich steige aber nicht ins Programmieren ein, sondern benutz den schon über ein Jahr.

    Ich will eigentlich nur meine exen kleiner machen. Das geht beim MSVC++ mit /nodefaultlib, da er nicht alle überflüssigen libs einbidet.

    Da muss es doch bei Borland eine ähnliche Option geben??!



  • Vermutlich nicht. Aber beim Compiler Package ist eine Hilfedatei dabei (bcb5tool.hlp), dort kannst du dir alle Linker Optionen nochmal anschaun.



  • danke, wusst ich noch ganich dasses des gibt ... aber hab nix gefunden 😕
    Der borland muss es doch irgendwie unterstützen dass der ein paar libs NICHT mitlinkt. Oder sonst irgendwie was, damit die executables kleiner werden...kann doch nich sein dass man fürn (nur z.B.) hallowelt programm ne fast 50KB exe hat!!

    was sagt ihr dazu?



  • also Nachtrag ich kenne 3 freie IDE für den bcc5.5 - wahrscheinlich gibt's
    mehr.
    1. den einfachen c++ Editor von Florian Schorradt.
    2. den schon erwähnten VIDE dort sind in den Hilfedateien Links zu Borland
    Helpfiles und auch die Schalter für Compiler, Linker und Debugger auf-
    gelistet.
    3. Context ein Editor mit Syntaxhighlight für fast 20 Programmiersprachen
    und mehrere SQL-Dialekte. Ausserdem für Sprachenfans : diesen Editor
    kann man auf diverse Sprachen (Englisch, Deutsch u.s.w.) einstellen.
    Es gibt noch eine Menge weiterer Einstellmöglichkeiten.

    der bcc5.5 ist ein Gimik von Borland (kostenlos) und es wurden gegenüber den
    kostenpflichtigen Compilern einige Möglichkeiten eingeschränkt. Ich weiss,
    dass einige Borland-Compiler spezielle EXE-Packer mit im Paket hatten.

    Wenn ich viel Langeweile hab teste ich vielleicht meine Compiler was die zu
    "Hallo World" meinen.
    Ich habe einfache Programme zu Dbase und zur Maus geschrieben - Ergebnis :
    der eine Compiler erstellt bei der Maus eine mehrfach größere EXE und der
    Andere bei der DBase. Preisfrage welcher optimiert denn nun besser bei gleichen
    Sourcen ?
    Unter 16 bit gab's auch unabhängige freie EXE-Packer wahrscheinlich gibt's
    sowas auch für 32 bit. Wenn ich mich richtig erinnere erstellt der bcc32
    keine reinen Konsolen-Exe sondern Win32-Exe mit entsprechendem Overhead.
    Wenn dies so ist, ist dies mit ein Grund für die 50kB. Ich kann mich irren
    aber die kleinste "Hallo World"-EXE ist, glaube ich, für die Konsole kleiner
    als 100 bit.

    ich hab noch nicht viel mit dem bcc32 gemacht, aber es steht in den Helpfiles,
    dass auf jedenfall die Dateien bcc32.cfg und ilink32.cfg erstellt werden müssen
    und in diesen kann man, so vermute ich, auch die Compiler- und Linker-Schalter
    festlegen. Hab dies aber noch nicht ausgiebig getestet.

    In C++ gibt es keinen grösseren Spass als Sourcen in verschiedenen Compilern
    zu testen und dann die unterschiedlichen Fehlermeldungen zu "bewundern".
    Was der eine Compiler klaglos frist das führt bei einem Anderen vielleicht
    zu vielen Fehler- und Warnmeldungen.

    MfG f.-th.



  • f.-th. schrieb:

    Ich kann mich irren
    aber die kleinste "Hallo World"-EXE ist, glaube ich, für die Konsole kleiner
    als 100 bit.

    Aber nur, wenn du sie in Assembler schreibst 😃



  • Wenn es interessiert. Borland bietet den CBuilderX Personal für lau,nix kosta an.
    Sehr gute IDE mit CVS Unterstützung und einfachem Zugriff auf GCC,MingW und
    dem freien BCC Kommandozeilen Compiler von Borland.

    Vielleicht löst das ja ein paar Probleme mit ner richtigen IDE.



  • hallo
    wenn's noch interessiert. der schalter ist nicht dokumentiert(soweit ich weis):
    für die console -tWCR (kann auch sein ohne t -> testen). hello world ist dann
    viel kleiner. dann muss allerdings der zugriff auf eine entsprechende
    runtime.dll gegeben sein. der name wird wenn kein zugriff möglich ist in der
    fehlermeldung angegeben. ich suchte, da ich einen älteren Bcc kannte, nach
    xxxRTL.DLL die heist beim Bcc 5.5 aber nun cc3250.dll und steht normalerweise
    im bin-path des compilers.
    für windows: -tWR.
    das ganze ohne gewähr,sollte sich ein fehler eingeschlichen haben, muss ich
    nochmal nachsehen.

    mfg f.-th.


Anmelden zum Antworten