#1 Le 22/04/2007, à 14:10
- Link/DD
Compiler pour Mac et Windows sous linux
Distribution : Xubuntu Edgy Eft 6.10 (bientôt Ubuntu 7.04)
Voila je créer un logiciel multi-plate-forme, donc je l'ai déja compiler sous linux, il me reste plus qu'a le compiler sous Mac et sous Windows, or je n'ai pas Mac et je n'ai plus Windows. Donc faut tout compiler sous Linux, mais comment ?
Toute la prog : www.toutelaprog.tux-atome.fr
Le site du projet Shell O.S. : http://shellos.dev.tux-atome.fr
Hors ligne
#2 Le 27/04/2007, à 16:50
- Scoutone
Re : Compiler pour Mac et Windows sous linux
la question m'intéresse également.
J'ai fait un minijeu, et je veux en faire profiter ma classe.
Je suis obligé d'aller sous windows pour leur compiler le projet et je ne peux pas le faire pour Mac, je trouve ca agacant, il doit forcement exister une solution !
ou alors compiler dans un format compatible PC/Mac, mais je ne connais pas le nom...:(
#3 Le 27/04/2007, à 17:12
- Watchwolf
Re : Compiler pour Mac et Windows sous linux
ce n'est pas possible
Deja que entre distribution ce n'est pas possible, alors entre OS
Hors ligne
#4 Le 27/04/2007, à 17:47
- AlexandreP
Re : Compiler pour Mac et Windows sous linux
Ben, pour Windows, en cherchant dans la documentation, j'ai vu Ming32. Mais je n'ai pas de solution pour MacOS.
«La capacité d'apprendre est un don; La faculté d'apprendre est un talent; La volonté d'apprendre est un choix.» -Frank Herbert
93,8% des gens sont capables d'inventer des statistiques sans fournir d'études à l'appui.
Hors ligne
#5 Le 28/04/2007, à 12:23
- Scoutone
Re : Compiler pour Mac et Windows sous linux
#%*µ$¤£
c'est franchement dommage, mais une question me turlupine:
Code::blocks existe aussi bien sous Windows que sous ubuntu, alors pourquoi ce ne serais pas possible ?
le tuto sur Mingw32 permet de faire ca (c'est déjà ca )
sinon, j'ai cru comprendre qu'il existait un type de fichier exécutable qui marche sous PC et Mac (universal binaries je crois) peut-on compiler via Ubuntu voire Windows dans ce format ? et comment faire ?
Dernière modification par Scoutone (Le 28/04/2007, à 12:28)
#6 Le 28/04/2007, à 16:39
- TatSou-Max
Re : Compiler pour Mac et Windows sous linux
Si je ne me trompe pas, lorsque l'on compile un programme, il est spécifique à l'OS (et même à la distribution) sur lequel on le compile.
Comme la si bien dit Watchwolf, un programme compilé sous ubuntu ne marchera déjà pas sous Mandriva, alors de la à le faire tourner sous Win et Mac, peine perdu.
Je pense (à titre personnel) que le meilleur moyen de partager ton programme avec toutes les plateformes, c'est de diffuser les sources et non un exécutable.
blocks existe aussi bien sous Windows que sous ubuntu, alors pourquoi ce ne serais pas possible ?
Très certainement parce qu'ils ont du compiler leur source 2 fois: une fois pour windows et une 2nde fois pour Ubuntu.
Dernière modification par TatSou-Max (Le 28/04/2007, à 16:42)
Hors ligne
#7 Le 28/04/2007, à 17:04
- kaworu
Re : Compiler pour Mac et Windows sous linux
Comme la si bien dit Watchwolf, un programme compilé sous ubuntu ne marchera déjà pas sous Mandriva, alors de la à le faire tourner sous Win et Mac, peine perdu.
Je pense (à titre personnel) que le meilleur moyen de partager ton programme avec toutes les plateformes, c'est de diffuser les sources et non un exécutable.
Très certainement parce qu'ils ont du compiler leur source 2 fois: une fois pour windows et une 2nde fois pour Ubuntu.
Un programme compilé pour Ubuntu marchera sur Mandriva. Il faut juste remplir certaines conditions. Par exemple, il faut les même versions des bibliothèques au même endroit. Par contre, un programme peut très bien être compilé sous Ubuntu-6.10 et ne pas marcher sous Ubuntu-7.04 (à moins d'installer des libs de Ubuntu-6.10, pour la même raison que Mandriva).
les universal binaries sont d'un autre type. ça ne marche que pour MacOS et c'est pour que ça marche et sous MacOSX version PPC (PowerPC) et MacOSX version Intel. Là c'est un problème d'architecture. En faite y a aucune magie dans ces "universal binaries", ils sont à peu près 2x plus lourd que le binaire pour PPC seulement ou Intel seulement, en faite le programme est quand même compilé 2x et simplement "emballé" dans un fichier.
http://fr.wikipedia.org/wiki/Universal_binaries
En effet diffuser les sources (tant qu'il n'y a pas d'appels à des lib qui ne sont que sur un OS, d'assembleur, d'appel système trop dépendant de l'OS) permet une bonne portabilité.
Autrement une solution (peut-être finalement, la plus simple) c'est d'écrire le programme dans un language de script comme Python/Perl/Ruby (Java aussi bien que pas un language de script, il suffit de le compiler une fois). Attention toute fois il ne faut pas non plus utiliser de lib non portable si le but est la portabilité etc. Les langages de script ne sont pas adaptés à des programmes où la performance est une priorité, et un script veut dire forcément diffuser les sources (sauf pour Java et quelques exceptions).
"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."
Hors ligne
#8 Le 28/04/2007, à 17:51
- TatSou-Max
Re : Compiler pour Mac et Windows sous linux
Tiens en lisant le post de kaworu, une idée m'est venue.
Quel langage utilises tu ?
Hors ligne
#9 Le 28/04/2007, à 20:02
- Scoutone
Re : Compiler pour Mac et Windows sous linux
moi mon programme est en C++
sinon, je suis tout à fait d'accord qu'il vaut mieux distribuer les sources, c'est ce que j'ai fait pour ledit projet que je cherche à faire partager à ttes ma classe.
Mais hélas, c'est là qu'est l'os, ils n'ont aucune idée de ce qu'est la programmation (à part peut-être un truc de geek... ) alors leur demander de compiler quelque chose...c'est la galère, de plus ils sont sous Mac ou Windows, c'est là que mon pb se pose, tout n'est pas aussi simple que sous Ubuntu où il suffit de leur demander de taper 2 lignes ds le terminal pour que tt marche !
et je vois mal comment faire plus simple que de refiler directement l'executable.
et merci pour ces precisions sur les universal binaries (ca m'évitera des heures de recherche pour rien)
Dernière modification par Scoutone (Le 28/04/2007, à 20:05)
#10 Le 29/04/2007, à 09:58
- TatSou-Max
Re : Compiler pour Mac et Windows sous linux
Et bien franchement, moi, à part demander à tes potes de te prêter leur PC le temps de faire un exécutable pour chaque OS, je ne vois pas vraiment de solution.
désolé.
Hors ligne
#11 Le 29/04/2007, à 10:02
- Watchwolf
Re : Compiler pour Mac et Windows sous linux
ou alors tu met les sources + instruction de compilation sur un forum Windows et Mac en demandant gentillement si quelqu'un pourrait te le le compiler
Hors ligne
#12 Le 29/04/2007, à 10:12
- TatSou-Max
Re : Compiler pour Mac et Windows sous linux
+1 Watchwolf
j'y avais pas pensé.
Hors ligne
#13 Le 29/04/2007, à 16:04
- Scoutone
Re : Compiler pour Mac et Windows sous linux
effectivement, ca peut le faire, surtout pour Mac en fait, comme j'ai aussi WinXP sur mon ordi, je peux le compiler moi même mais c'est toujours frustrant de devoir changer d'OS pour un truc que tout le monde peut faire quand il a appris, même vite fait
ou alors j'installe wine, j'installe Codeblocks dessus avec les libraires et je compile de cette facon....ca reste tordu quand même
ou alors peut-être que virtual box est plus approprié (parce qu'il émule un PC ?)
je commence à avoir la migraine avec tout ces trucs
#14 Le 29/04/2007, à 19:05
- TatSou-Max
Re : Compiler pour Mac et Windows sous linux
Tu te casse trop la tête !
Si tu as WinXP, change d'OS, le résultat est garanti !
Encore se serait pour MacOS, mais la pour Windows...
Hors ligne
#15 Le 29/04/2007, à 19:15
- revax
Re : Compiler pour Mac et Windows sous linux
Si tu dois compiler le programme pour un mac, je pourrais voir les sources ?
Je possède un mac, et peut être que je pourrais t'aider (cela sans aucune garantie).
Hors ligne
#16 Le 29/04/2007, à 19:55
- Watchwolf
Re : Compiler pour Mac et Windows sous linux
2 choses
- pour compiler il faut les logiciels+bibliotheques, tout le monde n'a pas ca sur son pc. (surtout sous Windows et Mac).
- tu peut tres bien compiler depuis un Windows dans virtualbox (sauf si tu a besoin de 3D, la tu ne pourra pas tester). Pour Macos c'est un peu plus dur.
Hors ligne
#17 Le 29/04/2007, à 20:11
- Link31
Re : Compiler pour Mac et Windows sous linux
Mingw est fait pour ça, donc c'est parfaitement possible de cross-compiler pour windows. Pour MasOS je ne sais pas quoi utiliser par contre.
Pour éviter le problème des bibliothèques manquantes : deux solutions :
- les fournir avec l'exécutable
- compiler l'exécutable statiquement (bon ok ça fera un fichier de 20 Mo, mais au moins il fonctionnera partout).
Hors ligne
#18 Le 29/04/2007, à 20:12
- Watchwolf
Re : Compiler pour Mac et Windows sous linux
quand je parlais des libraries je parlait des libraries de develloppement (les .h&co).
Hors ligne
#19 Le 29/04/2007, à 20:25
- Link31
Re : Compiler pour Mac et Windows sous linux
quand je parlais des libraries je parlait des libraries de develloppement (les .h&co).
Oui, mais je ne répondais pas directement à ton dernier message. Au fait, un .h n'est pas une bibliothèque/librairie, c'est un fichier à inclure qui définit les symboles (fonctions/variables/constantes) présents dans la bibliothèque. Le .h est indispensable pour compiler (il peut être fourni avec les sources, mais ce n'est pas recommandé, vu que les bibliothèques peuvent changer au gré de leur créateur), et les bibliothèques sont indispensables pour compiler et pour faire tourner le programme.
Hors ligne
#20 Le 29/04/2007, à 22:27
- Scoutone
Re : Compiler pour Mac et Windows sous linux
@revax effectivement c'est une solution, voici le lien:
morpion3D, sources + .exe pour windows
ca reste encore court, mais bon, tant que c'est jouable, autant faire profiter
les libraires utilisées sont SDL et OpenGL, et le sdl.dll est avec (au cas ou...)
d'ailleurs j'arrive pas à compiler via mingw32 dès qu'il y a des libraires, mais je verrais ca plus tard...
merci du coup de main
#21 Le 30/04/2007, à 02:29
- revax
Re : Compiler pour Mac et Windows sous linux
A quoi ressemble ton application ?
J'ai eu du mal, notamment les noms des bibliothèque pour l'openGL changent..
bref c'est sans doute pas bon mais j'y travaille
voici ce que donne une fois compilé l'application:
Je peux faire bouger le cude avec le clique gauche mais c'est tout. Je pense qu'il doit y avoir autre chose..
Je regarderais demain.
Edit: hum j'avais pas bien lu le readme :-°
en effet, j'avais pas compris le principe. Bon et ben les lettres ne font rien, j'imagine que ça sélectionne une case. La touche g ne remet pas non plus la vue normal. Cependant les flèches marchent.
Ca doit être un problème de clavier spécifique mac. Je verrais demain.
Edit (2), enfait si je décommente la configuration possible avec le pavé numérique, ça marche
Note si je mets, les deux configurations en même temps, ça ne bug pas.
Et si tu tiens absolument que la configuration clavier marche, je pourrais voir ce que je peux faire.
Je te donne le l'exécutable demain.
http://img82.imageshack.us/img82/734/image9zd9.png
(enfin, je gros débutant en prog, donc c'est un miracle que j'ai réussi là)
Et pardon d'avoir pollué le topic :-°
Dernière modification par revax (Le 30/04/2007, à 02:56)
Hors ligne
#22 Le 30/04/2007, à 04:22
- Link31
Re : Compiler pour Mac et Windows sous linux
Avec SDL et OpenGL, ça devrait passer tout seul. Une petite remarque en plus, tu peux installer un compilateur windows et le faire tourner avec Wine pour produire des .exe (et pour tester le programme). Ça permet d'éviter de redémarrer ou de lancer une virtualisation de windows juste pour compiler.
Hors ligne
#23 Le 30/04/2007, à 11:30
- Scoutone
Re : Compiler pour Mac et Windows sous linux
c'est bien ca, c'est un morpion en 3D
par contre la config au niveau des touches est en train de varier:
-au début c'était avec le pavé numérique, mais certains ordis n'en ont pas, ce qui rend le jeu...injouable
-ensuite j'ai voulu mettre les lettres a,z,e,q,s,d,w,x,c, et g dans la même logique que pour le pavé numérique, mais là la SDL a un pb: les touches sont pour des claviers azerty, mais le programme les mets à leur place de qwerty
-en dernier recours j'ai mis les chiffres situés au dessus des lettres (touches que tout le monde a), mais la jouabilité en prend un coup
donc c'est tout à fait normal si ca ne correspond pas tout à fait
et aujourd'hui j'ai réalisé que je pouvais assigner plusieurs touches à un même "ordre" (ca m'avais complètement échappé ), donc dès ce soir je remet tout comme il faut avec les 3 séries de touches citées plus haut (même si ca bugue avec les lettres pour le moment)
@link=> ok, je vais tester ca et je vous dis le résultat.
petite question: que dois-je installer pour juste compiler un programme sous WinXP ?
car à ce moment là un IDE n'est pas nécessaire...mais je peux tjs réutiliser Code::blocks et à ce moment je dois également réinstaller toutes les libraires je suppose
EDIT: c'est bon, retélécharge le même lien, tout est OK: les 3 configurations de touches y sont, désormais il sera plus jouable et le readme indique les bonnes touches, par contre préviens moi si les lettres ne correspondent pas, en tout cas merci
Dernière modification par Scoutone (Le 30/04/2007, à 15:24)
#24 Le 30/04/2007, à 13:37
- Link31
Re : Compiler pour Mac et Windows sous linux
je peux tjs réutiliser Code::blocks et à ce moment je dois également réinstaller toutes les libraires je suppose
Pourquoi pas Code::Blocks (qui vient probablement avec Mingw). Sinon tu peux essayer d'installer Mingw seul sous Wine, avec les bibliothèques nécessaires bien sûr, ça sera toujours plus facile que de cross-compiler depuis Linux (même si cette cross-compilation se fait également avec Mingw).
Hors ligne
#25 Le 30/04/2007, à 23:53
- Scoutone
Re : Compiler pour Mac et Windows sous linux
bon, voici une version un peu plus achevée:
Morpion3D-1.0.0
si tu as terminé avec le précédant, tant pis, mais celui ci est plus jouable (normalement)
d'ailleurs, j'ai réussi à compiler sous ubuntu pour windows:
j'ai installé wine, puis codeblocks avec wine pour windows, ca marche impecc
du coup j'ai mis les 2 .cbp dans le dossier, comme ca les options sont dedans et le code est dans les mêmes fichiers (l'un modifie l'autre).