Fórum Root.cz

Hlavní témata => Windows a jiné systémy => Téma založeno: milo 13. 05. 2013, 14:16:55

Název: Qt Creator s MiniGW a Win instalace
Přispěvatel: milo 13. 05. 2013, 14:16:55
Ahoj mám problém s přenášením aplikací skompilovaných na jednom s qt_sdk na jinej stroj. Občas to prostě nefunguje, tedy mám několik otázek.
1) Stačí k běhu programu přenést všechny potřebné knihovny Qt a knihovny mingw?
2) Existuje nějakej software kterýmu se předhodí binárka a on nalezne všechny potřebný knihovny a vytvoří instalátor?
3) Chtěl jsem jít cestou že si všechny odpovídající závislosti naleznu pomocí Dependency Walkeru jenže nevím proč ale občas to stejnak nefunguje. (programuju na 64bit windows 7 ale používám mingw32).
Název: Re:Qt Creator s MiniGW a Win instalace
Přispěvatel: eMko 13. 05. 2013, 21:36:09
ad 2) Umí to placené verze InstallShieldu. Jinak zkus DependencyWalker - ten jse sice jenom najde, ale instalátor si pak můžeš vytvořit gratis v něčem jiném (Inno Setup, NSIS...)
Název: Re:Qt Creator s MiniGW a Win instalace
Přispěvatel: eMko 13. 05. 2013, 21:38:46
(sorry, nevšiml jsem si, že tu není možnost editace příspěvků :-/ )

ad 1) Teoreticky by mělo. V čem konkrétně je problém? Můžeš prosím zkusit napsat něco více?
ad 3) Dep Walker je závislý 32/64 bit (nebo alespoň býval). Zkus obě verze; máš-li 32bitovou binárku, tak bys měl mít 32bitový Dependency Walker.
Název: Re:Qt Creator s MiniGW a Win instalace
Přispěvatel: milo 21. 05. 2013, 11:18:41
Add 1) provedu kompilaci pod Qt s mingw32 na PC s win7 64bit. Binárku kopíruji do vlastní složky, přikopíruji potřebné knihovny a a program šlape. Jenže celou složku přesunu na jinej PC tak se většinou vůbec nerozeběhne a hlásí problém s dll a i takový který by vůbec neměl potřebovat. Mám konzolovou aplikaci pro ovládání jednoho motorku a systém vyžaduje ke startu ieshim.dll. No ale stejnak když dodám všechny potřebný knihovny tak se nespustí a program vyřve runtime error.
Add 3) Mám podezřeníže celý se to sere protože wokenice nedokážou rozlišovat soubory podle obsahu a nerozpozná která dll byla skompilovaná kterým překladačem(k této úvaze mě vede to že dll rozpoznaný na DW na jednom kompu se tváří že mají jinný výstupy než na druhým). Možná se to nějak elegantně řeší, ale programoval jsem jen drobnosti na linuxu ale s wokenicema si nevím rady.

Otázka navíc je nějaký prostředí(free lépe opensource) pro windows který když napíšu program tak je schopno vytvořit balík kterej budu distribuovat, abych nemusel trávit čas proč software neběží na ostatních PC s windows?
Název: OT: Re:Qt Creator s MiniGW a Win instalace
Přispěvatel: Ivan 21. 05. 2013, 11:44:31
Zkus se podivat na kompilaci pomoci Visual Studia Express - nektery problemy ti odpadnou. Pokud pouzivas cmake pro build, tak se zkus podivat na CPACK.
Název: Re:Qt Creator s MiniGW a Win instalace
Přispěvatel: eMko 21. 05. 2013, 14:38:18
Add 1) provedu kompilaci pod Qt s mingw32 na PC s win7 64bit. Binárku kopíruji do vlastní složky, přikopíruji potřebné knihovny a a program šlape. Jenže celou složku přesunu na jinej PC tak se většinou vůbec nerozeběhne a hlásí problém s dll a i takový který by vůbec neměl potřebovat. Mám konzolovou aplikaci pro ovládání jednoho motorku a systém vyžaduje ke startu ieshim.dll. No ale stejnak když dodám všechny potřebný knihovny tak se nespustí a program vyřve runtime error.

To je dost zvláštní. Nelinkuješ nějaké zbytečné knihovny navíc, i z QT? Případně opět 64/32 bitů?

Add 3) Mám podezřeníže celý se to sere protože wokenice nedokážou rozlišovat soubory podle obsahu a nerozpozná která dll byla skompilovaná kterým překladačem(k této úvaze mě vede to že dll rozpoznaný na DW na jednom kompu se tváří že mají jinný výstupy než na druhým). Možná se to nějak elegantně řeší, ale programoval jsem jen drobnosti na linuxu ale s wokenicema si nevím rady.

Klid, linux taky ne. Jinak systémová DLLka na Windows mají jinou volací konvenci, než používá GCCčko, stejně tak popis rozhraní je trochu jiný. Při linkování je potřeba na to myslet.

Otázka navíc je nějaký prostředí(free lépe opensource) pro windows který když napíšu program tak je schopno vytvořit balík kterej budu distribuovat, abych nemusel trávit čas proč software neběží na ostatních PC s windows?

Visual Studio. Free verze je tu: http://www.microsoft.com/visualstudio/cze/products/visual-studio-express-for-windows-desktop#product-express-desktop . Je dost omezená, ale pracovat se v tom dá. (Ono C++ je celkem utrpení i v normálních edicích, prostě nemá takovou podporu jako C#.) Jenom nevím, jak to bude s integrací QT.

Pokud by Ti stačil jen kompilátor (ten je rozhodující, ne to, v čem píšeš kód), tak Qt se snad dá kompilovat i Microsoftím kompilátorem, ten s tím Visual studiem dostaneš.
Název: Re:Qt Creator s MiniGW a Win instalace
Přispěvatel: Ivan 21. 05. 2013, 15:08:32
Je dost omezená, ale pracovat se v tom dá. (Ono C++ je celkem utrpení i v normálních edicích, prostě nemá takovou podporu jako C#.) Jenom nevím, jak to bude s integrací QT.

JJ mingw ma jiny ABI a to pak vede ke spoute neprijemnych padu, ktery se tezko resi. Jednodussi je pouzit CMAKE a tim si nechat vygenerovat project file primo pro VisualStudio. Takovy projekt pak sam kompiluje .ui soubory a generuje .moc headery.
K vysledny binarce staci pribalit par .dll knihoven z QTcka s vsechno funguje.

Nejaky poznamky k tomu jsem napsal tady http://sourceforge.net/p/tora/code/HEAD/tree/branches/tora3/README.WINDOWS

(Pokud jde o prochazeni C++ kodu tak na to je lepsi Eclipse CDT)