Question

Je cherche un moyen de créer un fichier exécutable double pour Windows / Mac. C'est-à-dire que je peux exécuter le fichier dans n'importe quel système d'exploitation et qu'il exécute un morceau de code que je souhaite pour ce système d'exploitation. Ce code peut être un script ou (de préférence) un code compilé nativement, mais il doit être exécuté sur le système d'exploitation vanilla sans nécessiter l'installation d'outils ni de bibliothèques supplémentaires. L’autre condition est qu’il s’agisse d’un fichier unique.

Quelqu'un sait-il comment faire ou est-ce même possible?

Était-ce utile?

La solution

La seule façon pour moi de voir que cela fonctionne est d'avoir des outils supplémentaires installés:

  • Scripts: Les analyseurs de commandes sont extrêmement différents entre Mac (bash shell) et Windows (qui possède 2: PowerShell et l'original, ne connaît pas son nom technique). Vous devrez soit installer Services for Unix / Cygwin / Insert-other-UNIXy-Environment ici sous Windows, soit utiliser quelque chose comme perl ou un autre langage de script. Dans les deux cas, au moins moins la machine Windows et éventuellement le Mac ont besoin d’outils supplémentaires prêts à l’emploi.
  • Exécutables: Pour cela, vous ne pouvez utiliser que Java, .NET / Mono ou un autre environnement de machine virtuelle multiplate-forme multiplate-forme. Par conséquent, vous restez dépendant d'outils qui ne sont pas disponibles. (IIRC, Java non fourni avec Windows et Mono non fourni avec Mac.)
  • Autres problèmes : Le problème le plus important que vous rencontrerez après la gestion de la dépendance de l'outil est que les chemins d'accès sont identifiés différemment sur les deux systèmes. Comprendre que les chemins Mac sont généralement des chemins de style Unix (même si je pense que les chemins "old-school" séparés par deux points Mac sont toujours valables). Vous devrez également gérer différents emplacements de fichiers et emplacements par défaut en fonction des deux environnements. Ce sera une douleur.

Maintenant, si vous pouvez vous en tirer en utilisant une compilation croisée au lieu de la compatibilité binaire, vous pouvez avoir une réponse dans un outil appelé RealBasic . Il était à l'origine basé sur Mac, mais il existe également des versions pour Windows et Linux. J'avais l'habitude de jouer avec ça au début de cette décennie, et c'était plutôt chouette, mais ce n'est pas quelque chose que j'ai utilisé de manière professionnelle. Si vous faites attention, cela vous permettra d’écrire le code une fois et de compiler le même code que les applications Mac, Linux et Windows natives.

Autres conseils

Dans un script, tout va bien, mais dans un code compilé, cela sera impossible, car l'exécutable (exe) de Windows est différent des exécutables Mac (bin) qui sont différents des exécutables Linux (ce que vous voulez). / p>

Tant que vous utilisez un langage multiplate-forme tel que Java, vous pouvez l'exécuter sur l'un ou l'autre système d'exploitation. Le code natif ne sera toutefois pas exécutable.

Il n'y a rien de semblable entre les deux. Aucun programme ou script, quelle que soit la langue, ne fonctionnerait exactement de la même manière sur les deux machines sans autre exigence, telle qu'un interpréteur bash pour Windows par exemple.

Mono ou Java peuvent être installés sur un Mac et exécuter des programmes conçus pour être multiplates-formes. Sans ce type de bibliothèque spéciale prenant en charge plusieurs plates-formes, il n’existe aucun dénominateur commun ni aucun moyen d’exécuter la même application sur les deux.

Pas exactement ce que vous voulez, mais peut-être remarquable:

Vous pouvez utiliser Cocotron pour compiler des programmes écrits en obj-C avec Cocoa Les fenêtres. Fonctionne assez bien! Cela ne vous donnera pas un exécutable pour Mac et Windows, mais un pour le Mac et un pour Windows.

Vous voudrez peut-être consulter Realbasic. C'est un langage de clonage VB avec un IDE. Il construira des exécutables pour Windows, Mac et Linux. realbasic.com

Vous pourriez envisager de regarder les StarKits fonctionnant avec Tcl / Tk.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top