
Qt Windows - behové knižnice z iného adresára
Zaradil som do kategórie softvér, hoci by sa to dalo obhájiť aj v kategórii programovanie. Možno by nebolo od veci dať možnosť multivýberu kategórii. Ale k veci:
Povedzme, že mám program v Qt (P1) a ten bude volať iný program v Qt v inom adresári (svoj "plugin", P2). P1 bude mať v adresári s EXE súborom aj všetky potrebné knižnice Qt potrebné pre jeho beh. P2 by ich mal mať tiež a takto narastie dĺžka programu zbytočne o myslím 20 MB. Dá sa nejako dosiahnuť, aby P2, ktorý je volaný z P1 využíval knižnice z adresára P1? Zamedzilo by sa tým duplikovaniu súborov.
Pýtam sa to v teoretickej rovine a uvítam aj nejaký "kód", ktorý by to umožnil. Reálne taký program napísaný nemám, ale v budúcnosti budem mať a preto sa pýtam dopredu ako to riešiť.
co konkretne nazyvas slovom "behové knižnice"?
Vseobecne je to vec programu, programator moze naprogramovat cokolvek, ak cita nejaku dll tak zadava nazov a moze zadat kludne aj ..\..\atd). Ked to nemas vo svojom programe ale skryte vo frameworku tak hlada sa najprv v aktualnom, potom v systemovych adresaroch. Aktualny adresar aplikacie sa da nastavit, mal by si si pozret tu funkciu ktorou spustas to P2, urcite sa tam bude dat nastavit aj pracovny adresar pre P2 priamo pri jej spustani.
Predstav si túto situáciu:
Program Arena (šachové GUI) spúšťa šachové motory, ktoré sú samostatnými aplikáciami. Asi tomuto sa to dá najlepšie pripodobniť.
Alebo studuj tu
http://doc.qt.nokia.com/latest/deployment-windows. html
moznosti je vela (od statically linked az po nejake fcie na nastavenie ciest).
BTW. testuj to na cistom PC, aby si vedel ze co vsetko este musis distribuovat ked to nelinkujes staticky, ono je mozne ze to chce aj nejake systemove dll ktore boli u teba uz instalovane do systemu (C:\Windows\neco\) spolu s instalaciou QT.
Statickým linkovaním myslíš pridanie DLL k samotnému EXE? To by bolo úplne ideálne.Hádam sa o tom v tom linku dočítam. Lebo raz dávnejšie som niečo také hľadal a našiel som len informácie o tom, že ktoré DLL treba pridať k programu.
Doplnené: Takže je to vytvorenie DLL súborov bez čísla verzie, ale nejaký extra význam v tom nevidím, pretože, keby sa objavila staršia aplikácia, bude fungovať s tým "univerzálnym" DLL, keď je to verzia 4? To som tam zodpovedané nenašiel, ale nevadí.