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.