Article View: be.comp.programming
Article #4631Re: Compilermeldingen in Visual C++ .NET
From: Sjoerd Schreuder
Date: Thu, 17 Jul 2003 20:27
Date: Thu, 17 Jul 2003 20:27
62 lines
4124 bytes
4124 bytes
Ivan Van den Bossche wrote: > Ik krijg de volgende meldingen in Visual C++ .NET tijdens het compileren van > een project: > > d:\backup\IVB\PrintOnDemand SERVICE\PODService\main.cpp(167): warning C4267: > 'argument' : conversion from 'size_t' to 'int', possible loss of data > d:\backup\IVB\PrintOnDemand SERVICE\PODService\main.cpp(178): warning C4267: > 'argument' : conversion from 'size_t' to 'int', possible loss of data Dit zijn warnings van de compiler. Je gebruikt ergens een int om een waarde op te slaan die officieel van het type 'size_t' is en die kan grotere getallen bevatten dan een int aankan. Waarschijnlijk komt die size_t van een sizeof() of zoiets. Maar goed, wat je doet is officieel wel toegestaan door de C++ standaard, ook al kan het in de praktijk "verkeerde" resultaten opleveren. C++ wordt vanwege dit soort zaken wel eens als onveilig gezien. Gelukkig zijn er warnings. Warnings zijn meestal wel een indicatie om ergens nog eens naar te kijken, want niet alles wat mag is ook altijd verstandig om te doen. > PODService error LNK2005: _malloc already defined in LIBC.lib(malloc.obj) > PODService error LNK2005: _free already defined in LIBC.lib(free.obj) > PODService error LNK2005: "private: __thiscall type_info::type_info(class > type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in > LIBC.lib(typinfo.obj) > PODService error LNK2005: "private: class type_info & __thiscall > type_info::operator=(class type_info const &)" > (??4type_info@@AAEAAV0@ABV0@@Z) already defined in LIBC.lib(typinfo.obj) > PODService warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other > libs; use /NODEFAULTLIB:library > PODService fatal error LNK1169: one or more multiply defined symbols found Het klinkt alsof je de standaard library twee keer mee probeert te linken. Normaal wordt de standaard library al wel meegelinkt, maar blijkbaar doe je dat nog een tweede keer en dan gaat de compiler klagen dat hij die functie al kent. Het gaat om de functies malloc() en free() en de klasse type_info. Ik heb zulke problemen ook bij MSVC 6.0 meegemaakt, en toen kwam dit doordat er een debug library werd meegelinkt in een release build, of omgekeerd. Ergens staat er in de projectsettings iets waardoor dit komt. Welke settings zou ik niet zo kunnen zeggen. Die /NODEFAULTLIB optie zou ik niet gebruiken: dat is alleen noodzakelijk als je de normale library niet wilt gebruiken. Er zijn uitzonderlijke situaties waarin je dat zou willen (je kunt die 300 bytes extra niet missen of iets dergelijks), maar gezien je vraag zul je je daar echt niet bezig (mogen) houden. Probeer eens een vers project aan te maken en dan alle source files daaraan toe te voegen; En kijk vervolgens met een filediff naar de twee project files. Misschien kun je zo opsporen welke setting verkeerd staat. Sjoerd Schreuder
Technical Details
Message-ID:
<3F17074C.F3725A6A@wanadoo.nl>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-05!sn-xit-08!supernews.com!newsfeed.news2me.com!newsfeed.icl.net!newsfeed.fjserv.net!skynet.be!skynet.be!213.51.129.3.MISMATCH!newshub1.home.nl!home.nl!news2.euro.net!cleanfeed.casema.net!castor.casema.net.POSTED!53ab2750!not-for-mailReferences:
<MqCRa.16688$F92.2067@afrodite.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: 107324,4b80f0c22f2ea67f X-Google-Attributes: gid107324,public X-Google-Thread: fcea4,4b80f0c22f2ea67f X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2003-07-17 13:27:17 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-05!sn-xit-08!supernews.com!newsfeed.news2me.com!newsfeed.icl.net!newsfeed.fjserv.net!skynet.be!skynet.be!213.51.129.3.MISMATCH!newshub1.home.nl!home.nl!news2.euro.net!cleanfeed.casema.net!castor.casema.net.POSTED!53ab2750!not-for-mail Message-ID: <3F17074C.F3725A6A@wanadoo.nl> From: Sjoerd Schreuder <sa_schreuder@wanadoo.nl> X-Mailer: Mozilla 4.7 [en] (Win98; I) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: be.comp.programming,nl.comp.programmeren Subject: Re: Compilermeldingen in Visual C++ .NET References: <MqCRa.16688$F92.2067@afrodite.telenet-ops.be> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 62 Date: Thu, 17 Jul 2003 20:27:15 GMT NNTP-Posting-Host: 213.17.100.152 X-Trace: castor.casema.net 1058473635 213.17.100.152 (Thu, 17 Jul 2003 22:27:15 MEST) NNTP-Posting-Date: Thu, 17 Jul 2003 22:27:15 MEST Organization: Wanadoo NL