cross-platform linux/windows(cygwin) met c++ en qt

Pagina: 1
Acties:
  • 159 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • The Flying Dutchman
  • Registratie: Mei 2000
  • Laatst online: 29-07 21:57
Ik ben nu al een tijdje bezig met C++ (heb aan de RuG een zeer uitgebreide cursus gevolgd) onder linux, commandline-only. Maar nu wil ik meer. Graag wil ik programma's maken met een GUI die daarnaast zo gemakkelijk mogelijk cross-platform (windows en linux, andere platformen niet perse nodig) te maken zijn. Na wat onderzoek gedaan te hebben hiet op GoT en op google leek het me handig om met Qt aan de slag te gaan voor de GUI. Daarnaast wil ik dus programma's die gebruik maken van Qt ook onder windows compileren (met Qt/Windows).

Een simpel voorbeeld programma met GUI werkt ondertussen onder linux en ook onder Windows. Maar om het programma in windows te kunnen compileren moet MinGW gebruikt worden. Veel liever wil ik Cygwin gebruiken omdat ik dat een stuk fijner vind werken. Dus ik wil in Cygwin c++/qt4windows programma's compileren (die standalone, zonder cygwin omgeving) onder windows kunnen draaien.
Hoe kan ik dat voor elkaar krijgen zonder dat ik de boel in MinGW hoef te compileren?

The Flying Dutchman


Acties:
  • 0 Henk 'm!

  • Hackykid
  • Registratie: November 2003
  • Laatst online: 28-07-2024
Misschien is http://www.cmake.org/ iets om naar te kijken?

Ik heb dat al gebruikt om een Qt project onder linux (met gewone Makefiles of kdevelop project files) en op windows (met visual studio express 2005) werkend te krijgen.

Volgens mij is ook een cmake package in cygwin dus zou ook met cygwin moeten kunnen werken.

Acties:
  • 0 Henk 'm!

  • DroogKloot
  • Registratie: Februari 2001
  • Niet online

DroogKloot

depenisvanjezus

Als je programma geen POSIX API-calls doet dan kun je het met cygwin-gcc gewoon als standalone compileren, zoniet dan heb je pech. ;)

Acties:
  • 0 Henk 'm!

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Misschien dat je ook nog eens naar wxWidgets die heeft in de wiki ook een stuk over cross-platform compilen met cMake.

Nu met Land Rover Series 3 en Defender 90


Acties:
  • 0 Henk 'm!

  • The Flying Dutchman
  • Registratie: Mei 2000
  • Laatst online: 29-07 21:57
Bedankt voor de reacties.
Ik zal nog eens verder naar de oplossingen kijken. Tot nog toe ben ik nog niet helemaal tevreden met wat ik tot nog toe bereikt heb. Voor (zowel) Qt moeten er sowieso altijd extra's dll's meegeleverd worden (van Qt dus). Daarnaast, omdat Qt onder windows van MinGW afhankelijk is (zelfs na compileren met cygwin wat ik uiteindelijk wel voor elkaar kreeg), moet er ook een dll van mingw meegeleverd worden.

Wat ik nu dus ga doen is even naar de door jullie beschreven oplossingen kijken, of daar iets tussen zit wat ik goed kan gebruiken, of ik maak een of ander wrappertje oid en twee versies van het programma/GUI die mbv deze wrapper minimaal van elkaar verschillen.

The Flying Dutchman


Acties:
  • 0 Henk 'm!

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Ik vermoed dat je sowieso een compatibility dll/library mee moet leveren. Voor windows zal dit eigenlijk altijd moeten (zoals je al aangeeft dat Qt MingW nodig heeft) en ik kan me voorstellen dat je voor OSX etc misschien ook wel zoiets moet doen.
IMHO is het eigenlijk niet zo'n probleem mits je de compatibility layer als een onderdeel van je deployment voor een target systeem meeneemt. Dit is waarschijnlijk wel wat lastiger om in te richten maar ik denk dat je er niet aan ontkomt om extra dlls/libraries mee te leveren.

Nu met Land Rover Series 3 en Defender 90

Pagina: 1