Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Linkkerivirheet

Touho [01.01.2006 18:57:37]

#

Oon tekemässä jo 1500 riviseksi edennyttä projektia, ja kun rupesin tekemään pikkuista luokkaa (en tiedä, liittyykö tähän), niin kääntäjä on siitä lähtien antanut virheilmoituksia luokan poistosta huolimatta.

Linking...
LIBCD.lib(dbgheap.obj) : error LNK2005: _malloc already defined in MSVCRTD.lib(MSVCRTD.dll)
LIBCD.lib(dbgheap.obj) : error LNK2005: _realloc already defined in MSVCRTD.lib(MSVCRTD.dll)
LIBCD.lib(dbgheap.obj) : error LNK2005: _free already defined in MSVCRTD.lib(MSVCRTD.dll)
LIBCD.lib(crt0dat.obj) : error LNK2005: _exit already defined in MSVCRTD.lib(MSVCRTD.dll)
LIBCD.lib(crt0dat.obj) : error LNK2005: __exit already defined in MSVCRTD.lib(MSVCRTD.dll)
LIBCD.lib(fpinit.obj) : error LNK2005: __ldused already defined in a previous module
LIBCD.lib(fpinit.obj) : error LNK2005: __fltused already defined in a previous module
LIBCD.lib(strcat.obj) : error LNK2005: _strcpy already defined in MSVCRTD.lib(MSVCRTD.dll)
LIBCD.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in MSVCRTD.lib(cinitexe.obj)
LIBCD.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in MSVCRTD.lib(cinitexe.obj)
LIBCD.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in MSVCRTD.lib(cinitexe.obj)
LIBCD.lib(crt0init.obj) : error LNK2005: ___xi_a already defined in MSVCRTD.lib(cinitexe.obj)
LIBCD.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in MSVCRTD.lib(MSVCRTD.dll)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fprintf already defined in LIBCD.lib(fprintf.obj)
LINK : warning LNK4098: defaultlib "MSVCRTD" conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib "LIBCD" conflicts with use of other libs; use /NODEFAULTLIB:library
MSVCRTD.lib(cinitexe.obj) : warning LNK4098: defaultlib "msvcrt.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
Debug/Project.exe : fatal error LNK1169: one or more
multiply defined symbols found
Error executing link.exe.

EggThief.exe - 15 error(s), 3 warning(s)

Tämä tuli todella yllättäen, koska en muistaakseni mitään kirjastomuutoksia ole tehnyt lähiaikoina.

Kieli: C++
Ehkä vaikuttavat kirjastot: SDL, OpenGL, freetype
Ympäristö: MSVC++ 6.0

Heikki [01.01.2006 20:27:09]

#

Lueppas tuo virheilmoitus: use /NODEFAULTLIB.
Eli lisääppä tuo /NODEFAULTLIB linkkerin parametreihin (en nyt muista tarkkaan missä se on mutta jostain projektiasetuksista löytyy).

Touho [01.01.2006 20:48:54]

#

Vaikka laitan tonne "Ignore Libraries:" kohtaan libcd.lib ja/tai msvcrtd.lib, niin se silti antaa virheilmotuksen. Ainoa, mikä vaikuttaa on kun laittaa tuon msvcrt.libin ignoreen, mutta siitä menee vaan toi yks warning pois.

Touho [02.01.2006 13:55:08]

#

Haha! Uskokaa tai älkää. Tässä on kaikki, mitä tein korjatakseni tämän vian. Yrittäkääpäs etsiä tästä logiikkaa.

-en linkittänyt libcd.libiä -> freetype sanoo error.
-poistin kaikki freetypeosuudet projektista. toimii, mutta ilman fontteja.
-lisäsin libcd:n -> toimii vieläkin
-lisäsin freetypen takaisin, ja toimii mainiosti fonttien kanssa

Baglair [02.01.2006 16:24:47]

#

Täysin absurdia sanoisin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta