Alors comme c'est écrit dans le titre, j'ai créé un programme avec Code::Blocks (donc sous Windows), et j'aimerais créer un "executable" pour Linux. Le soucis est que seul un programme avec l'extension exe est créé.
Pouvez vous m'aider ? Merci d'avance.
Il y a 10 types de gens dans le monde : ceux qui parlent binaire, et les autres.
Pour ça, il te faudra un environnement GNU/Linux. Il y a un client GNU/Linux pour Code::Blocks disponible sur la page de téléchargement du site officiel. Donc tu peux le télécharger, l'installer (ou passer par ton gestionnaire de paquet si tu ne sais pas comment compiler depuis la source). Ensuite, tu peux utiliser le site PasteBin pour copier/coller ton code et reprendre ce lien pour copier le code source dans Code::Blocks pour ton installation GNU/Linux. Ensuite tu compile et tu vois si ça fonctionne bien. À noter que si tu utilise des librairies Windows, elles ne vont pas marcher pour GNU/Linux. Il faudra donc bien faire attention à ce genre de problèmes.
Sinon, il existe une méthode qui consiste à utiliser Mingw32 comme compilateur pour compiler de GNU/Linux vers Windows. C'est une solution assez complexe si l'on est pas habitué et qui peut vite devenir casse-tête car il faut régler certaines options au millimètre près. Je ne recommande pas cette solution.
Le mieux est d'utiliser un environnement GNU dédié à la compilation. Tu peux facilement télécharger et installer une distribution GNU sous VirtualBox pour ensuite créer un exécutable compatible pour ces environnements. C'est que je j'ai l'habitude de faire en règle générale.
Il existe sûrement d'autres solutions que je n'ai pas mentionné mais que tu peux trouver en faisant une petite recherche.
J'utilise Windows car j'ai essayé d'installer Code::Blocks sur linux mais comme tu viens de le dire, les librairies ne fonctionnent pas (c'est logique puisque ce sont celles de Windows. Le soucis, c'est que celle de Linux non plus...
Il y a 10 types de gens dans le monde : ceux qui parlent binaire, et les autres.
Je viens de tester et effectivement, quelque chose qui n'est pas dit pour ceux qui utilisent GNU/Linux et qui ne veulent pas utiliser un makefile : lorsque tu compile ton code, le compilateur va chercher si les fonctions sont disponibles dans les bibliothèques standards (/usr/lib/include). S'il trouve une fonction qui n'est pas référencée dans ces bibliothèques, il va chercher si ce n'est pas une fonction maison qui tu as créé toi. Puis, si ça n'est pas toujours le cas, il va demander au linker s'il n'y a pas une bibliothèque externe qui a été liée au projet. Si c'est le cas, il la lie et l'intègre dans l'executable pour qu'elle puisse être utilisée dans ton programme.
Tout ça pour dire que le tutoriel OCR ne donne pas la manipulation : il te propose simplement d'utiliser leur fichier makefile. Si tu télécharge ce makefile, tu verras les options de linker qui sont toute bête au final, il suffitt simplement de compiler ton projet comme suit :
gcc -lSDL testsdl.c -o testsdl && ./testsdl
Et là ça marche, je vois ta superbe création. Elle est vraiment cool ta fenetre noir.
Je plaisante bien entendu. Mais j'avais oublié ce petit détail sous GNU/Linux.. de toute façon ce chapitre je l'ai un peu zappé je ne fais pas beaucoup de programmation graphique.
Ah oui ! Et il faut installer le paquet libsdl de ta distribution (tu peux même prendre la version 2 si t'as envie de découvrir les nouveaux outils). Évite de passer par le site officiel parce que sinon, il faudra que tu recompile à chaque nouvelle version. Préfère dans l'absolu les paquets de distribution.
Et du coup, si tu décide de suivre ce que je t'ai dit et d'installer la version 2, la compilation ressemblera à :
gcc -lSDL2 testsdl2.c -o testsdl2 && ./testsdl2
Tout simplement !
- Edité par Anonyme 3 mai 2016 à 19:50:25
Executer programme code::blocks sous linux
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.