Linker Problem



  • Habe ein Builder (version 1) Projekt erhalten. Folgende Fehlermeldung beim Compilieren/Linken: Undefined Symbol WinMain referenced from C:\Programme\Borland\Cbuilder\Lib\COW32.OBJ

    Wo liegt das Problem und wie kann man dies bei dieser Uraltversion lösen? (kenne mich mit Builder leider nicht gut aus, eher mit MSVC++)



  • erste idee:
    machst du eine konsolen oder windows anwendung? richte dementsprechend ein projekt ein (ohne das ich borland fahre)



  • zweite:
    nach kurzrecherche hier mal schauen.. seite 64 des pdfs..

    http://www.ifis.uni-luebeck.de/lehre/ss01/prakt/informix-doc/answers/pubs/pdf/72xnt/7463a.pdf



  • Projekt ist nicht von mir, wurde nur um Hilfe gebeten, da es nicht mehr Kompiliert/linkt. Es handelt sich um eine Windows-Anwendung. In den Projekteinstellungen ist auch GUI eingestellt. Wenn dort auf Konsole umstelle, findet er "main" nicht. Irgenwie scheint der Einstieg in WinMain zu fehlen.

    Die mak-datei sieht wie folgt aus:

    # ---------------------------------------------------------------------------
    VERSION = BCB.01
    # ---------------------------------------------------------------------------
    !ifndef BCB
    BCB = $(MAKEDIR)\..
    !endif
    # ---------------------------------------------------------------------------
    PROJECT = QM_Moderator.exe
    OBJFILES = QM_Moderator.obj Unit9.obj Unit10.obj Unit11.obj Unit2.obj \
       Unit3.obj Unit4.obj Unit5.obj Unit6.obj Unit7.obj Unit8.obj Unit1.obj
    RESFILES = 
    RESDEPEN = $(RESFILES) Unit9.dfm Unit10.dfm Unit11.dfm Unit2.dfm Unit3.dfm \
       Unit4.dfm Unit5.dfm Unit6.dfm Unit7.dfm Unit8.dfm Unit1.dfm
    LIBFILES = 
    DEFFILE = 
    # ---------------------------------------------------------------------------
    CFLAG1 = -O2 -Hc -w -k- -r -vi -c -a4 -b- -w-par -w-inl -Vx -Ve -x
    CFLAG2 = -I"c:\qm_iso 9001\images";"c:\qm_iso 9001";$(BCB)\projects;$(BCB)\include;$(BCB)\include\vcl \
       -H=$(BCB)\lib\vcl.csm 
    PFLAGS = -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE \
       -U"c:\qm_iso 9001\images";"c:\qm_iso 9001";$(BCB)\projects;$(BCB)\lib\obj;$(BCB)\lib \
       -I"c:\qm_iso 9001\images";"c:\qm_iso 9001";$(BCB)\projects;$(BCB)\include;$(BCB)\include\vcl \
       -$L- -$D- -JPHNV -M     
    RFLAGS = -i"c:\qm_iso 9001\images";"c:\qm_iso 9001";$(BCB)\projects;$(BCB)\include;$(BCB)\include\vcl 
    LFLAGS = -L"c:\qm_iso 9001\images";"c:\qm_iso 9001";$(BCB)\projects;$(BCB)\lib\obj;$(BCB)\lib \
       -aa -Tpe -x -V4.0 
    IFLAGS = 
    LINKER = tlink32
    # ---------------------------------------------------------------------------
    ALLOBJ = c0w32.obj $(OBJFILES)
    ALLRES = $(RESFILES)
    ALLLIB = $(LIBFILES) vcl.lib import32.lib cp32mt.lib 
    # ---------------------------------------------------------------------------
    .autodepend
    
    $(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
        $(BCB)\BIN\$(LINKER) @&&!
        $(LFLAGS) +
        $(ALLOBJ), +
        $(PROJECT),, +
        $(ALLLIB), +
        $(DEFFILE), +
        $(ALLRES) 
    !
    
    .pas.hpp:
        $(BCB)\BIN\dcc32 $(PFLAGS) { $** }
    
    .pas.obj:
        $(BCB)\BIN\dcc32 $(PFLAGS) { $** }
    
    .cpp.obj:
        $(BCB)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $* 
    
    .c.obj:
        $(BCB)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $**
    
    .rc.res:
        $(BCB)\BIN\brcc32 $(RFLAGS) $<
    #-----------------------------------------------------------------------------
    


  • das einzige, was ich noch finde, ist: die COW32.OBJ sucht genau den einstieg zur winmain.

    mein eindruck: wo auch immer sie ist, sie wird nicht dem projekt zugehörig angesehen. teste mal mit einer kleinen eigenen winmain.



  • @elise: vielen Dank für deine Hilfe. Das ist wirklich sehr nett! 👍
    Problem wurde gelöst (fehlende Teile in einer cpp). Nochmals vielen Dank. 🙂


Anmelden zum Antworten