Je voudrais porter mes applications C/C++ sur OS X.
Je n'ai pas de Mac, mais j'ai Linux et Windows. Existe-t-il un outil pour cela ?
Je voudrais porter mes applications C/C++ sur OS X.
Je n'ai pas de Mac, mais j'ai Linux et Windows. Existe-t-il un outil pour cela ?
Pour Linux, il existe un compilateur croisé GCC préconstruit (à partir des sources GCC modifiées d'Apple accessibles au public).
https://launchpad.net/~flosoft/+archive/cross-apple
Mise à jour pour 2015
http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/311
RadStudio d'Embarcadero permet également de créer des applications OSX/iOS/Android sous Windows.
Ce site réponse par Thomas fournit également un outil de compilation croisée.
Pour toutes ces options, vous avez toujours besoin d'un vrai mac/i-device pour tester l'application.
C'est un GCC 4.2 parfaitement valide, capable de compiler de grandes bibliothèques. Cependant, il n'a pas été mis à jour pour les SDK 10.7, 10.8 ou 10.9, et peut donc être considéré comme obsolète. Je l'ai utilisé pour compiler mon propre projet en C/C++ juste pour tester s'il peut être porté et corriger certaines incompatibilités évidentes, puis je l'ai construit sur le vrai mac.
J'ai créé un projet appelé OSXCross qui vise à cibler OS X (10.4-10.9) à partir de Linux.
Il prend actuellement en charge clang
3.2 jusqu'à 3.8 (trunk) (vous pouvez utiliser la version de votre dist. clang
).
En outre, vous pouvez construire une version actualisée de vanilla GCC
également (4.6+).
Le LTO fonctionne aussi bien, pour les deux, clang
y GCC
.
J'utilise actuellement cctools-870 avec ld64-242.
Il semble y avoir quelques scripts qui ont été écrits pour vous aider à mettre en place la compilation croisée pour le Mac ; je ne peux pas dire à quel point ils sont bons, ou s'ils sont applicables à votre projet. Dans la documentation, ils font référence à ces instructions pour la compilation croisée pour 10.4, et Ceux-ci pour la compilation croisée pour 10.5 ; ces instructions peuvent être plus utiles que le script, selon la façon dont le script répond à vos besoins.
Si votre programme est un logiciel libre ou open source, vous souhaiterez peut-être plutôt créer une MacPorts portfile (documentation aquí ), et permettez à vos utilisateurs de construire votre programme en utilisant MacPorts ; c'est généralement la manière préférée d'installer un logiciel libre ou open source portable sur Mac OS X. MacPorts a été connu pour fonctionner sur Linux dans le passé, donc il peut être possible de développer et tester votre Portfile sur Linux (bien qu'il devra évidemment être testé sur un Mac).
@jcoffland Non, l'inverse. C'est pour construire des applications OS X sur Linux. Lisez le titre. "Compilation croisée sur Linux pour Mac OS X 10.3 - 10.5" (c'est nous qui soulignons). Notez que cette réponse est très ancienne maintenant (presque 7 ans, oups !) et que les réponses ultérieures ci-dessous contiennent des informations plus récentes.
Lorsque vous essayez de faire fonctionner quelque chose sur plusieurs plateformes, vous devez absolument doit compiler/exécuter/intégrer/tester sur la plate-forme prévue. Vous ne pouvez pas vous contenter de compiler/exécuter sur une plate-forme et dire ensuite "oh, ça devrait fonctionner de la même manière sur l'autre plate-forme".
Même avec un très bon langage multiplateforme comme Java, vous rencontrerez des problèmes lorsqu'il ne fonctionnera pas exactement de la même manière sur l'autre plateforme.
Le seul moyen que j'ai trouvé qui respecte mon temps/ma productivité/ma capacité à itérer rapidement sur plusieurs plateformes est d'utiliser une VM des autres plateformes.
Il existe d'autres solutions comme le dual-boot et d'autres que je n'ai pas mentionnées mais je trouve qu'elles ne respectent pas ma productivité / mon temps.
Prenons l'exemple du double démarrage :
BAM voilà 30 minutes de mon temps et je n'ai rien fait. tout ce qui est productif.
Lorsque 3 démarrages prennent 30 minutes, vous avez besoin d'un nouveau matériel ; et probablement la possibilité d'accéder et de modifier le système de fichiers d'un OS depuis un autre. Mais je comprends le sentiment et je préfère aussi les VM parce qu'elles me permettent de les traiter comme des machines physiques dédiées.
Le temps nécessaire au redémarrage n'est pas seulement le temps de démarrage, c'est aussi le temps d'arrêt, le redémarrage des démons, la configuration de votre environnement de développement, la vérification que vous avez toujours la dernière version de votre système de contrôle de version, etc.
Sans compter que mon cerveau perd toute cohérence de cache et doit lentement recacher tout ce que je dois faire... et très probablement perdre de la productivité lorsque le navigateur web s'ouvre accidentellement.
Vous aurez certainement besoin d'OS X d'une manière ou d'une autre. Même si vous ne possédez pas de Mac, vous pouvez toujours essayer quelques alternatives .
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.