kostenloser Webspace werbefrei: lima-city


Linken mit gcc [InitCommonControlsEx]

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    sw1tch

    Kostenloser Webspace von sw1tch, auf Homepage erstellen warten

    sw1tch hat kostenlosen Webspace.

    Ich habe eine WINAPI-Anwendung mit C erstellt und möchte diese nun kompilieren. Dies funktioniert prinzipiell super doch ich habe das Gefühl, dass er nicht korrekt linkt.
    Ich möchte InitCommonControlsEx() verwenden und hierzu benötige ich den Header commctrl.h und die Library libcomctl32.a.
    Weiterhin soll vor dem inkludieren des Headers _WIN32_IE 0x0300 definiert werden. Dies ist ebenfalls in meinem Code vorhanden und bewirkt schonmal, dass der Compiler die Funktion "kennt".

    Der eigentliche Compiler-Aufruf sieht (mit UltraEdit) folgendermaßen aus:
    C:\MinGW\bin\gcc.exe -lcomctl32 -pipe -mwindows -O3 -s -o %n *.c

    Funktioniert auch Prima allerdings gibt der Linker den Fehler " ...undefined reference to `InitCommonControlsEx@4' " aus...

    Ich bin ratlos, da eigentlich alles korrekt gelinkt und inkludiert sein sollte.

    Danke für eure Hilfe,
    Sw1tch


    Beitrag zuletzt geändert: 25.11.2009 19:27:04 von sw1tch
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Mußt du evtl. irgendwelche libraray-Pfade angeben?
    Wo befindet sich denn dielibcomctl32.a.
    Oder ist es der Tippfehler
    statt
    C:\MinGW\bin\gcc.exe -lcomctl32 -pipe -mwindows -O3 -s -o %n *.c
    vielleicht besser:
    C:\MinGW\bin\gcc.exe -libcomctl32 -pipe -mwindows -O3 -s -o %n *.c
  4. Autor dieses Themas

    sw1tch

    Kostenloser Webspace von sw1tch, auf Homepage erstellen warten

    sw1tch hat kostenlosen Webspace.

    Ich habe nun folgendes feststellen können.
    Der Befehl zum linken ist korrekt. Möchte ich beispielsweise die Library "libw2_w32.a" einbinden lautet der Befehl "-lw2_32". Der Linker scheint den Befehl korrekt aufgenommen zu haben, da bei einer Veränderung des Namen (zu einer nicht existenten Lib) ein Fehler ausgegeben wird, dass die Library nicht gefunden wurde.
    Nun wird der Befehl zwar erkannt, doch die Lib scheinbar nicht korrekt gelinkt. Er gibt mir weiterhin eine "undefined reference to..." Warnung an, wenn ich Befehle aus der libw2_32.a verwenden möchte!

    MfG Sw1tch

    Edit:
    Konnte es selber lösen. Der Linker-Command muss ganz ans ende der Befehlskette gestellt werden!

    Beitrag zuletzt geändert: 26.11.2009 15:38:43 von sw1tch
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!