2009-02-13 13 views
2

J'ai un petit morceau de code qui fonctionne comme un plugin pour une application graphique plus grande. La plate-forme de développement est Qt avec du code C++. J'ai réussi à construire un fichier .so, .dylib et .dll pour linux, MacOS et Windows respectivement, mais pour cela, je devais avoir une machine qui exécute chaque système d'exploitation (dans mon cas, exécutant linux [ubuntu] gcc nativement, et Windows MinGW et MacOS XCode gcc dans les machines virtuelles).Création d'une bibliothèque sur plusieurs plates-formes sans exécution de toutes les plates-formes

Existe-t-il un moyen de construire pour les 3 plates-formes d'un seul? Je me suis battu la tête contre ce problème il y a quelque temps, et la recherche à ce jour suggère que ce n'est pas facile (ou faisable). Le code n'a besoin de se lier qu'à un seul en-tête qui définit l'API du plugin et est construit à partir d'un Makefile assez basique (actuellement avec de petites variations par plate-forme).

Répondre

1

Mieux vaut tard que jamais, je ne suis tombé sur IMCROSS

Il semble très prometteur!

0

Pour Linux, il est assez facile de configurer ou même de télécharger une machine virtuelle en utilisant VMWare par exemple. Obtenir OSX pour s'exécuter sur VMWare est un peu compliqué mais possible.

Exécution de VMWare et le partage d'un répertoire sur un lecteur local, vous pouvez même compiler pour les différentes plates-formes en utilisant les mêmes fichiers exacts.

Il existe quelque part un compilateur croisé pour OSX mais je ne crois pas qu'il soit de grande qualité.

+0

Oui, c'est ce que j'ai fait jusqu'ici. – Rog

+0

OSX utilise gcc, en utilisant un compilateur croisé sur Linux pour compiler pour OSX devrait vous faire à peu près la même chose. – tliff

2

Vous devriez jeter un oeil à la compilation croisée.

Vous construisez essentiellement un compilateur qui (sur votre plate-forme actuelle) affichera des binaires pour vos plates-formes souhaitées.

Essayez this link à faire sur linux, pour Windows, avec QT