View previous topic :: View next topic |
Author |
Message |
Tankists
Joined: 18 Dec 2006 Posts: 81 Location: Baldone
|
Posted: Sat Sep 20, 2008 10:45 pm Post subject: |
|
Mazs jautājums. Neko nesaprotu, no DLL failu pievienošanas exe'i, nezinu, pat kā to procesu sauc, bet labprāt uzzinātu. Lietoju Code::Blocks ar MinGW. Pietiktu, kautvai ar lasāmvielu.
Paldies jau iepriekš. _________________ Getting used to problems... |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sat Sep 20, 2008 10:54 pm Post subject: |
|
To sauc par linkošanu.
Linkojot nokompilētos failus (objektfailus) kopā uz exe failu var papilus norādīt kādi dll failus var lietot (precīzāk sakot - kādus simbolus importēt no kādiem dll failiem). To dara norādot attiecīgās importa bibliotēkas no šiem dll failiem. GCC/MinGW šīs bibliotēkas faili saucās libXXX.a, piemēram libSDL.a fails. Atver codeblokam Build Options savam projektam un pameklē, kur tur linkera opcijās var uzstādīt papildus bibliotēkas.
Diemžēl MinGW wiki pašlaik nestrādā (šie kautko tur pārinstalē), tāpēc precīzu linku, kur palasīt par MinGW & DLL'iem, iedot nevaru. Bet tajā toč kautkas par to bija.
P.S. forša tēma, ko apspriest "C++ Networkingā". Žēl, ka šis forums paliek aizvien piedrazotāks... |
|
Back to top |
|
|
Tankists
Joined: 18 Dec 2006 Posts: 81 Location: Baldone
|
Posted: Sun Sep 21, 2008 10:31 am Post subject: |
|
Kuatkā man neizdodas. Cik saprotu jaiet Project->Build Options->Linker Settings un tur pie Link Libraries jāpievieno šī *.dll faila *.a fails. Bet nekādas izmaiņas, bez šī *.dll programma neiet. _________________ Getting used to problems... |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun Sep 21, 2008 10:42 am Post subject: |
|
dll'am jābūt programmas mapē (var būt sistēmas mapē, bet priekš ne-windows'a dll'iem tas ir bezjēdzīgi)
bet vispār - ko saka programma vai kas tieši neiet? _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Sep 21, 2008 11:08 am Post subject: |
|
Tankists wrote: | nekādas izmaiņas, bez šī *.dll programma neiet. |
Bet ko gan citu tu gaidīji?
Tieši to jau tu izdarīji - pielinkoji klāt atkarību projektam uz šo .dll failu ar attiecīgā lib*.a faila palīdzību. |
|
Back to top |
|
|
Tankists
Joined: 18 Dec 2006 Posts: 81 Location: Baldone
|
Posted: Sun Sep 21, 2008 11:19 am Post subject: |
|
Es biju domājis, piemēram lai programma var iet arī bez šī dll faila, tā lai tas itkā būtu jau programmā... _________________ Getting used to problems... |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Sep 21, 2008 11:31 am Post subject: |
|
Tad tev jāņem izejas kods, kas ticis izmantots kompilējot šo dll failu. Un šis kods jānokompilē statiskā bibliotēkā. Statiska bibliotēka, atšķirībā no dinamiskas bibliotēkas, satur visu vajadzīgo kodu sevī, tāpēc, izmantojot to, nekāds dll fails rezultējošam exe failam nebūs vajadzīgs.
Var, protams, vēl mēģināt kautkā iewrapot dll failu kā exe resursu, un programmas startupā to saglabāt temp direktorijā, un tikai tad importēt vajadzīgos simbolus, bet nu.. tas ir risinājums caur pakaļu.
P.S. C++ networkings, hehe :) |
|
Back to top |
|
|
|