Article View: pl.comp.lang.delphi
Article #345639Re: Problem z kompilacją x64
From: J-23
Date: Thu, 16 Mar 2017 13:35
Date: Thu, 16 Mar 2017 13:35
79 lines
6330 bytes
6330 bytes
W dniu 16.03.2017 o 10:10, Bartłomiej Sosenko pisze: > W dniu czwartek, 16 marca 2017 00:35:02 UTC+1 użytkownik J-23 napisał: >> W dniu 15.03.2017 o 23:23, Bartłomiej Sosenko pisze: >>> W dniu środa, 15 marca 2017 22:46:20 UTC+1 użytkownik J-23 napisał: >>>> W dniu 15.03.2017 o 21:23, Bartłomiej Sosenko pisze: >>>>> W dniu środa, 15 marca 2017 17:35:10 UTC+1 użytkownik miab napisał: >>>>>> W dniu 2017-03-15 o 16:45, Bartłomiej Sosenko pisze: >>>>>>> Mam problem z kompilacją w Delphi XE 10.1 (choć to akurat chyba bez większego znaczenia) programu który korzysta z modułów: >>>>>>> DesignEditors, DesignIntf >>>>>>> >>>>>>> Komunikat błędu jest następujący: >>>>>>> [dcc64 Fatal Error] E2202 Required package 'DesignIDE' not found >>>>>>> >>>>>>> Znalazłem informację że należy dodać parametr do kompilatora: -LUDesignIDE >>>>>>> i przy kompilacji x32 program prawidłowo się kompiluje - ale przy wersji x64 już nie (tak ustawiłem ten parametr również dla Target - 64bit - a dokładniej w polu: Value from "All configurations - 64-bit Windows Platform" >>>>>>> >>>>>>> Macie pomysł co może być nie tak? >>>>>>> >>>>>> >>>>>> Wg. wykładni Borland, a już szczególnie potomnych te moduły nie powinny >>>>>> być wkompilowywane do programu: >>>>>> https://forums.embarcadero.com/thread.jspa?threadID=119104 >>>>>> http://stackoverflow.com/questions/27699662/how-to-build-delphi-projects-for-win64-when-units-inside-it-uses-designeditors-d >>>>>> >>>>>> miab >>>>> >>>>> No ok, problem w tym że mam gotową aplikację (usługę) napisaną w D5 którą muszę przekompilować na x64. Na x32 już mi się udało konwertując użyte komponenty. Jeśli tych modułów nie uda mi się zmusić do pracy to będę musiał przepisać cały komponent co mi się bardzo nie uśmiecha :/ >>>>> >>>>> Pytanie więc czy jest możliwa rekompilacja na x64 - de facto to jeden moduł/plik *.pas (komponent) >>>>> >>>> >>>> Twoje pytanie pokazuje że nie przeczytałeś tego co kolega miab ci >>>> podesłał. Podesłał Ci informacje z której jasno wynika że w swoim >>>> komponencie wykorzystujesz moduły które Embarcadero czy jak tam teraz ta >>>> firma się zwie oczekuję były oddzielnie... tyle... podsumowując chcesz >>>> mieć pakiety pod x64 musisz to zrobić zgodnie z wytycznymi Embarcadero tyle. >>>> >>>> Pozdrawiam >>>> J-23 >>> >>> Zapewniam cię że przeczytałem cały wątek z linku jaki podał miab >>> Problem polega na tym że nie do końca rozumiem jak to zrealizować. Nie programowałem do tej pory aplikacji x64 i generalnie niedawno dopiero zacząłem pracować z XE 10.1 przesiadając się z D5 - tak że dla mnie to ogromna przepaść i wielu rzeczy muszę się nauczyć niemal od zera. Niestety nie znalazłem za wiele materiałów które by instruowały o różnicach w podejściu do tych dwóch tak odległych technologicznie środowisk. >>> >>> Komponent który korzysta z opisanej biblioteki to jeden plik *.pas - nie rozumiem co mam z nim zrobić i od czego go oddzielić. Mam skopiować ten sam plik do osobnego katalogu i ten osobny katalog wskazać jako katalog dla kompilacji x64? W projekcie? Czy w lokalizacjach bibliotek? >>> >> >> To z tego jednego musisz zrobić minimum 2; ten który ma być pod 64 >> bitową architekturę nie może zawierać deklaracji DesignEditors, >> DesignIntf bo są to moduły które mogą być tylko 32 bitowe (głupie wiem >> ale tak sobie życzy embarcadero) >> >> Wbrew pozorom nie jest to nic trudnego i ta zmiana nie powinna Ci zając >> dużo czasu. >> >> Jest to kwestia odpowiedniego rozdzielenia tego kodu. >> >> Pozdrawiam >> J-23 > > Z tego co piszesz wynika że de facto nie mogę przy kompilacji x64 korzystać z modułów DesignEditors, DesignIntf - co sprowadza się do tego aby je zastąpić inną obsługą potrzebnych funkcji. > Jeśli to zrobię to w sumie w wersji x32 też będzie to działać - więc jeśli nie ma innego wyjścia trzeba będzie głębiej poszperać. > > A przy okazji wracając do rozdzielania modułów na x32 i x64 - to czy to jest standardowa czynność przy kompilowaniu aplikacji że muszę mieć kopie plików *.pas z modułami w osobnych folderach dla x32 i x64? Nawet jeśli niczym sie nie różnią? > > Rozumiem że jeśli z jakichś powodów trzeba będzie modyfikować kod dla wersji x64 to jak napisał kolega poniżej można zrobić to za pomocą kompilacji warunkowej? > Nie pamiętam dokładnie co do kompilacji warunkowej. Nie mam też jak sam sprawdzić po za internetem ale wydaje mi się że powinny być flagi kompilatora które umożliwiają sprawdzić architekturę. Po za tym tak jak pisał Przemek - bo może ja faktycznie nie do końca się wyraziłem - cytuje "Z mojej wiedzy nie musisz rozdzielać modułów 32 i 64bit, ale właśnie runtime i designtime. No chyba, że wersje 32 i 64 bit się różnią." Ale to było napisane nawet na forum Embarcadero w linku który podesłał miab Pozdrawiam J-23
Technical Details
Message-ID:
<58ca94bc$0$5154$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<954e44a4-aab6-4b08-80b5-d7b6b866f456@googlegroups.com> <oabqfs$uo7$1@node1.news.atman.pl> <14b6dcba-953a-4c0e-b25f-7d88e21bb5e4@googlegroups.com> <58c9b62b$0$5142$65785112@news.neostrada.pl> <1090b7e1-1961-4fc7-a423-021f9d6cef39@googlegroups.com> <58c9cfa4$0$5143$65785112@news.neostrada.pl> <d91a6991-6000-4cc2-aee9-0b9030f4e9e4@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Subject: Re: Problem z kompilacją x64 Newsgroups: pl.comp.lang.delphi References: <954e44a4-aab6-4b08-80b5-d7b6b866f456@googlegroups.com> <oabqfs$uo7$1@node1.news.atman.pl> <14b6dcba-953a-4c0e-b25f-7d88e21bb5e4@googlegroups.com> <58c9b62b$0$5142$65785112@news.neostrada.pl> <1090b7e1-1961-4fc7-a423-021f9d6cef39@googlegroups.com> <58c9cfa4$0$5143$65785112@news.neostrada.pl> <d91a6991-6000-4cc2-aee9-0b9030f4e9e4@googlegroups.com> From: J-23 <Baczeklu@poczta.fm> Date: Thu, 16 Mar 2017 14:35:55 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <d91a6991-6000-4cc2-aee9-0b9030f4e9e4@googlegroups.com> Lines: 79 Message-ID: <58ca94bc$0$5154$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 188.146.9.93 X-Trace: 1489671356 unt-rea-a-01.news.neostrada.pl 5154 188.146.9.93:39144 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit