View previous topic :: View next topic |
Author |
Message |
EDDY
Joined: 07 Oct 2005 Posts: 1610 Location: Dzimtā zeme, Latvija
|
Posted: Thu May 21, 2009 8:53 am Post subject: Multi-threading dll |
|
Nu tā, kompilēju OpenGL menu piemēru ar Multi-Threading un dabūju šādu kļūdu -
Code: | 1>Linking...
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _free already defined in LIBCMT.lib(free.obj)
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _strchr already defined in LIBCMT.lib(strchr.obj)
1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>A_Sudoku.exe : fatal error LNK1169: one or more multiply defined symbols found |
Saprotams, man tur ir diezgan padaudz to dll, tāpēc parasti kompilēju ar Multi-Threading dll un nekādas problēmas.
It kā jau saka priekšā - Code: | use /NODEFAULTLIB:library |
Bet nezinu, kuru bibliotēku tad tur likt iekšā! _________________ Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday |
|
Back to top |
|
|
Tenjou
Joined: 22 Nov 2005 Posts: 275
|
Posted: Thu May 21, 2009 9:51 am Post subject: |
|
/NODEFAULTLIB:LIBCMT.lib |
|
Back to top |
|
|
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Thu May 21, 2009 10:00 am Post subject: |
|
Nu tak sakompilee visus ar vienu settingu un buus kaartiibaa. _________________ long time; /* know C */ |
|
Back to top |
|
|
EDDY
Joined: 07 Oct 2005 Posts: 1610 Location: Dzimtā zeme, Latvija
|
Posted: Thu May 21, 2009 10:27 am Post subject: |
|
elvman (El-Vee) wrote: | Nu tak sakompilee visus ar vienu settingu un buus kaartiibaa. |
Visus ko? :x
Tenjou wrote: | /NODEFAULTLIB:LIBCMT.lib |
Paprovēsim, vai tev taisnība. _________________ Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Thu May 21, 2009 11:21 am Post subject: Re: Multi-threading dll |
|
Pats jau saki, ka lieto EDDY wrote: | kompilēju OpenGL menu piemēru ar Multi-Threading |
un
Quote: | parasti kompilēju ar Multi-Threading dll |
Tie ir divi dažādi settingi, tāpēc arī konflikti.
Kā jau elvmans tev saka - kompilē ar vienādiem settingiem un nekādu kļūdu nebūs. |
|
Back to top |
|
|
EDDY
Joined: 07 Oct 2005 Posts: 1610 Location: Dzimtā zeme, Latvija
|
Posted: Thu May 21, 2009 11:32 am Post subject: |
|
Nu, paga paga, sāksim no sākuma.
Kad es kompilēju ar Multi-threaded dll, tad cilvēki sūdzās, ka vajagot šiem šo - http://dev.gamez.lv/viewtopic.php?p=19840#19840
tad nu es daru, lai bibliotēka pielinkotos.
Manā projektā ir GLFX, irrklang un paša veidots dll. Kāds te sakars ar vienādu settingu kompilēšanu? Vienādus settingus kam? Projektam var būt tikai viens settings. GLFX un irrklang es nevaru kompilēt. Vai te atkal sāksies vecās runas, ka mistiskā veidā jāuzzina kā kompilēts GLFX un irrklang???
Runa iet par ko citu, par dinamisko bibliotēku pielinkošanu. Ja Tenjou ideja izrādīsies pareiza, tad viss būs oki doki un atvainojos par miera traucēšanu. _________________ Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Thu May 21, 2009 12:16 pm Post subject: |
|
EDDY wrote: | Projektam var būt tikai viens settings. |
Kāpēc tad tu saki, ka kompilē ar diviem dažādiem settingiem?
Katram cpp failam var btw uzlikt pilnīgi savādākus C/C++ kompilēšanas settingus. Defaultā tie ņemas no projekta, bet customizēt var jebkādi.
Ja irrKlangs ir dll fails, tad viņa settingi tavu projektu neietekmē. Tb pie tādas kļūdas, ko augstāk iepeistoji, irrKlangs nav vainīgs.
Tenjou risinājums līdzēs, bet tas nav pareizs risinājums. Ar tādu risinājumu var iedzīvoties atmiņas problēmās (lasi: programma var krašot) to izdalot/atbrīvojot cpp failos, kas kompilēti ar dažādiem C/C++ runtime settingiem.
Pareizais risinājums ir kompilēt visu ar vienādiem settingiem.
Man ir aizdoma, ka tev nav skaidrs, ko tas "Multi-Threaded [DLL]" settings vispār dara. Tam katrā ziņā nav nekāda sakara ar to, ka tu savā exe failā gribi (vai negribi) izmantot citus vai savis rakstītus DLL failus. Šis settings kontrolē tikai to, kādu C/C++ runtime bibliotēku linkot klāt projektam. Sīkāk iesaku palasīt dokumentācijā. To, ko šis settings dara, es rakstīju jau tev te: http://dev.gamez.lv/viewtopic.php?p=19840#19840 |
|
Back to top |
|
|
EDDY
Joined: 07 Oct 2005 Posts: 1610 Location: Dzimtā zeme, Latvija
|
Posted: Thu May 21, 2009 12:28 pm Post subject: |
|
bubu wrote: | Kāpēc tad tu saki, ka kompilē ar diviem dažādiem settingiem? |
Tāpēc, ka kompilējot ar settingu -> Multi-threaded dll, cilvēki sūdzas par nepieciešamību klāt pieinstalēt to Visual C++ 2008 redistributable.
Es nevaru vienā laikā kompilēt ar diviem dažādiem settingiem.
Citēju tevi -
Code: | 3) kompilēt pie statiskā C/C++ runtaima - projekta opcijās pie Code Generation jānomaina Runtime library uz Multi-threaded (bez DLL). Rezultatā viss C/C++ runtaims ielinkosies tavā exe failā un nekādi ārēji runtaima DLL faili nebūs vajadzīgi. |
Vai kaut kas ne tā? Ko es te neesmu sapratis? Protams, tas var nozīmēt, ka pielinkosies tikai 1 bibliotēka, nevis 3, kā manā gadījumā.
Nezināju, ka katram cpp var iedot savus parametrus. Vēl vairāk tas šķiet dīvaini, jo ir tikai "Project Properties", kas attiecās uz visu projektu. _________________ Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday |
|
Back to top |
|
|
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Thu May 21, 2009 1:00 pm Post subject: |
|
Morpheusa eksistenciālā dilemma: būt vai nebūt vienādiem settingiem... _________________ long time; /* know C */ |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Thu May 21, 2009 1:53 pm Post subject: |
|
Nesaprotu, ko tu nesaproti, EDDY.
Kurš no vārdiem "kompilēt visu ar vienādiem settingiem" tev ir nesaprotams?
Tak linko visus proejekta failus un statiskās bibliotēkas bez tā DLL runtaima settinga un viss. Ko tur var nesaprast?
EDDY wrote: | Vēl vairāk tas šķiet dīvaini, jo ir tikai "Project Properties", kas attiecās uz visu projektu. | Properties konteksta izvēlne ir katram cpp failam (īstenībā jebkuram failam, kurš ievilkts projektā). |
|
Back to top |
|
|
EDDY
Joined: 07 Oct 2005 Posts: 1610 Location: Dzimtā zeme, Latvija
|
Posted: Thu May 21, 2009 3:48 pm Post subject: |
|
bubu wrote: | Tak linko visus proejekta failus un statiskās bibliotēkas bez tā DLL runtaima settinga un viss. Ko tur var nesaprast? |
Varbūt tu vari pateikt kā to dara? _________________ Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Thu May 21, 2009 5:13 pm Post subject: |
|
Tu labo un kreiso peles pogu spiest māki? Pieņemu, ka māki. Tad nu spaidi to pogu un saliec visiem saviem projektiem, kas tev tur kompilējas, vienādus C/C++ runtaima settingus. Kā var prastīt kā, ja tur tik vien tā darba, kā uzspiest kreiso pogu, labo pogu un izvēlēties vienādu settingu... |
|
Back to top |
|
|
EDDY
Joined: 07 Oct 2005 Posts: 1610 Location: Dzimtā zeme, Latvija
|
Posted: Fri May 22, 2009 7:05 am Post subject: |
|
Man tam menu ir tikai viens cpp fails un pārējie ir header ar skaitļu masīviem. Nu nezināju, ka katram failam atsevišķi var ko piekoriģēt.
Visu laiku domāju, ka tikai vienam projektam kopā. _________________ Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday |
|
Back to top |
|
|
|