dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Multi-threading dll

 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: 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
View user's profile
Tenjou



Joined: 22 Nov 2005
Posts: 275

PostPosted: Thu May 21, 2009 9:51 am    Post subject:

/NODEFAULTLIB:LIBCMT.lib
Back to top
View user's profile
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: 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
View user's profile Visit poster's website
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: 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
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Thu May 21, 2009 11:32 am    Post subject:

Nu, paga paga, sāksim no sākuma. Smile

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
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: 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
View user's profile
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: 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
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: 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? Wink
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: 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
View user's profile
Display posts from previous:   
dev.gamez.lv Forum Index -> Programmēšana All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group