Aller au menu - Aller au contenu

Executer un programme compilé sur un autre PC

Sur linux par exemple

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1 
Auteur Message
1 visiteur sur ce sujet (1 Anonyme)
Page 1 
Hors ligne Ricotchet # Posté le 09/02/2012 à 21:15:10
Avatar

Bonsoir,
J'ai besoin d'aide:
Voilà ce que je voudrais faire est tout bête (enfin je pensais). J'ai un programme (de type le pendu) que j'ai compilé sur mon Pc (avec Code Block)qui tourne sous Ubuntu, et faire tourner ce programme sur un autre pc (celui de mon taf) qui tourne aussi sur linux (mais Mandriva).
Vous vous demandez pourquoi je ne le compile pas directement sur le pc du travail ; effectivement ce serait plus simple mais les pc du travail sont sécurisés et on ne peut installer aucun programme.
J'avais cru comprendre qu'une fois le programme compilé il pouvait tourner sur autre pc à condition que se soit le même OS. Aurais je mal compris ?

Quelqu'un peut il m'éclairer ?
Publicité # Posté le 09/02/2012 à 21:15:10

Hors ligne paraze # Posté le 09/02/2012 à 21:21:47
Tiësto is the best
Avatar

Ville : Gex
Pays : France métropolitaine

Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Tu sais , on peut compiler un programme sans IDE (ici, codeblocks) : http://www.siteduzero.com/tutoriel-3-3 [...] nu-linux.html.

Citation : PO
J'avais cru comprendre qu'une fois le programme compilé il pouvait tourner sur autre pc à condition que se soit le même OS. Aurais je mal compris ?

Je pense que tu as un peu mal compris. ^^
Disons que l'on parle généralement de Windows && Mac && GNU/Linux, pas des différentes distributions : que se soit sous Ubuntu, Mandriva encore Archlinux, l'exécutable que tu as crée se lance de la même façon.
 
Hors ligne damjuve # Posté le 09/02/2012 à 21:31:08
éliminez le super flux
Avatar

Études : Epitech Paris

Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Si tu es sous linux, gcc doit probablement etre present.
Dans ce cas il te faut les sources (les .c et .h), les bibliotheques compile pour cet os (si tu utilise des .a).
Pour plus d'info je t inivite a essayer
Code : shell
1
man gcc


Exemple de compilation simple :
Code : shell
1
gcc -o pendu main.c autresource.c encoreunesource.c


Petite precision : si tu utilise des bibliotheque, il te faudra non seulement les .a compile pour le bon os, mais aussi linker ta librairie lors de la compilation (c est une option de gcc, quand tu uilise code blocks et que tu configure "compiler & debugger", c est ce qu il fait ;) )

Donnez systematiquement votre code, c est complique de trouver qu est ce qui ne vas pas si si non ;)

Les zeros vous ont bien aidé ? Passez votre sujet en resolu, ca nous evitera de perdre du temps a lire des postes qui n attendent plus de réponse ;)


Compétences


Maitrise : (x)HTML/CSS, PHP/MySQL, Javascript, C, C++, Java.
Approfondis : Javascript, MySQL.
Découvre : ASM.

Projets


C++ : Mon Lycée. Jeu 2D avec SFML.
Tuto : A la découverte de l'ADN.


<Deuskull>
"L'enfance et l'adolescence, c'est comme Windows, c'est simple, t'es (trop) guidé, tu ne peux rien faire et tu plantes souvent.
Etre adulte, c'est comme Linux, tu es libre ! Mais pour faire un tout petit truc, putain, qu'est-ce que t'en baves ...
La mort, c'est comme un Mac, çà existe mais personne ne s'en rend vraiment compte sauf à la fin ..."




 
Hors ligne MaitreZur # Posté le 09/02/2012 à 21:35:43
Avatar

Ville : Liège
Pays : Belgique
Études : HEPL INPRES

Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Citation : Ricotchet
J'avais cru comprendre qu'une fois le programme compilé il pouvait tourner sur autre pc à condition que se soit le même OS. Aurais je mal compris ?

Lorsqu'un programme est compilé, cela signifie qu'il est traduit dans un assembleur spécifique à une cible donnée (Intel, ARM, PowerPC...) et enregistré dans un format spécifique à un système d'exploitation (PE, ELF, a.out...).

Ton exécutable fonctionnera donc sur un autre environnement à condition que ce soit le même système d'exploitation et le même type de processeur. De plus, si il utilise des bibliothèques dynamiques, il faut que celles-ci soient installées et compatibles (c'est ce qui explique qu'un programme développé pour Windows 7 ne fonctionnera peut être pas sous Windows 98).
Édité le 09/02/2012 à 21:36:19 par MaitreZur
 
Hors ligne Alienore # Posté le 09/02/2012 à 22:12:34

Études : Polytech'Lille

Tu souhaites donc installer ton programme sur un PC sur lequel tu n'as pas le droit d'installer de programme ? Tu devrais demander si tu peux le faire.

Après, ça dépend ce qu'on entend par installer. Je considère personnellement qu'une installation consiste à faire le nécessaire pour que le programme souhaité fonctionne.
Hors ligne damjuve # Posté le 09/02/2012 à 22:18:50
éliminez le super flux
Avatar

Études : Epitech Paris

Citation : Alienore
Tu souhaites donc installer ton programme sur un PC sur lequel tu n'as pas le droit d'installer de programme ? Tu devrais demander si tu peux le faire.

Après, ça dépend ce qu'on entend par installer. Je considère personnellement qu'une installation consiste à faire le nécessaire pour que le programme souhaité fonctionne.

Je pense qu il parlait de code blocks. Il voulait a mon avis, juste installer code blocks pour recompiller son prog et le montrer a ses collegues.
Si gcc est bel est bien present, c est que sa boite tolere la compilation de programme personnel. Je ne vois pa ce qu il y a de mal.

D ailleurs si on me demandait de bosser sur linux sans avoir le droit de compiler des prog en C, ca serait un peu comme m interdire d utiliser la console et de passer par un explorateur de fichier.
Si gcc est de base present dans la majorite des distrib linux, c est pas pour rien, c est bien qu il sagit d un outils s adressant a tte personne qui souhaite tirer un peu plus de son os.

Donnez systematiquement votre code, c est complique de trouver qu est ce qui ne vas pas si si non ;)

Les zeros vous ont bien aidé ? Passez votre sujet en resolu, ca nous evitera de perdre du temps a lire des postes qui n attendent plus de réponse ;)


Compétences


Maitrise : (x)HTML/CSS, PHP/MySQL, Javascript, C, C++, Java.
Approfondis : Javascript, MySQL.
Découvre : ASM.

Projets


C++ : Mon Lycée. Jeu 2D avec SFML.
Tuto : A la découverte de l'ADN.


<Deuskull>
"L'enfance et l'adolescence, c'est comme Windows, c'est simple, t'es (trop) guidé, tu ne peux rien faire et tu plantes souvent.
Etre adulte, c'est comme Linux, tu es libre ! Mais pour faire un tout petit truc, putain, qu'est-ce que t'en baves ...
La mort, c'est comme un Mac, çà existe mais personne ne s'en rend vraiment compte sauf à la fin ..."




 
Hors ligne Ricotchet # Posté le 09/02/2012 à 23:04:03
Avatar

Merci beaucoup pour toutes vos réponses ! :)
Effectivement damjuve a raison : je parlais de codeBlock pour recompiler ; petite précision : je ne suis pas programmeur professionnel (du moins pas encore ;) ), par conséquent le pc mis à disposition de quelques employés est destiné à travailler mais pas du tout dans le cadre de la programmation ; et je confirme : c'est qu'un petit programme de rien du tout, y a rien de mal!

Citation : MaitreZur
Ton exécutable fonctionnera donc sur un autre environnement à condition que ce soit le même système d'exploitation et le même type de processeur

C'est vrai j'avais pas pensé que le matériel pouvait avoir une incidence...

D'ailleurs j'ai essayé de compiler directement en console avec gcc sur mon pc pour voir (mais c'est pas sur que j'y ai accès sur le pc de mon taf), alors la bonne nouvelle c'est que ca compile (le fichier executable est bien créé) mais la mauvaise c'est que lorsque je veux le lancer il ne se passe absolument rien. D'ailleurs j'ai oublié de le préciser dans mon message initial : lorsque j'executais mon fichier sur le pc du travail, il me demandais avec quoi je voulais ouvrir le programme (1ère surprise), après avoir sélectionné Konsole, il ouvrait donc une fenetre console et il ne se passait absolument rien. Du coup tout à l'heure j'ai essayé de lancer l'executable générer par la compilation de codeBlock sur mon pc et même résultat : rien !

Donc j'avoue que je ne comprend encore moins puisque le programme marche via code block mais pas quand on lance directement l'executable.
Quelqu'un aurait une idée ? Même toute petite ?
Hors ligne damjuve # Posté le 09/02/2012 à 23:19:12
éliminez le super flux
Avatar

Études : Epitech Paris

Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Ton programme utilise t il une lib externe ?

Si ton programme a pour vocation d utiliser l entree et sortie standard (c est a dire la console), il est plus logique de lancer le programme depuis la console.
(tu ouvre la console, cd pour arriver jusqu au dossier contenant le binaire. Et ./tonbinaire)

Si tu veux plus d aide il nous faudra ton code, ou du moin un code minimal (c est a dire la partie du code qui suffi a generer l erreur)

Donnez systematiquement votre code, c est complique de trouver qu est ce qui ne vas pas si si non ;)

Les zeros vous ont bien aidé ? Passez votre sujet en resolu, ca nous evitera de perdre du temps a lire des postes qui n attendent plus de réponse ;)


Compétences


Maitrise : (x)HTML/CSS, PHP/MySQL, Javascript, C, C++, Java.
Approfondis : Javascript, MySQL.
Découvre : ASM.

Projets


C++ : Mon Lycée. Jeu 2D avec SFML.
Tuto : A la découverte de l'ADN.


<Deuskull>
"L'enfance et l'adolescence, c'est comme Windows, c'est simple, t'es (trop) guidé, tu ne peux rien faire et tu plantes souvent.
Etre adulte, c'est comme Linux, tu es libre ! Mais pour faire un tout petit truc, putain, qu'est-ce que t'en baves ...
La mort, c'est comme un Mac, çà existe mais personne ne s'en rend vraiment compte sauf à la fin ..."




 
Hors ligne Ricotchet # Posté le 10/02/2012 à 00:15:12
Avatar

Nom d'une pipe !! ça marche !!!
Effectivement il fallait l'executer depuis la console :) .
J'ai plus qu'à essayer ça demain au taf...

la suite demain... :)

Merci encore
Hors ligne Ricotchet # Posté le 12/02/2012 à 22:36:03
Avatar

Pour info, c'est nickel : en exécutant le programme depuis la console, ça fonctionne sans problème. Et heureusement car la commande gcc est inexistante sur le pc.

Juste un dernier petit problème toutefois : le programme n'arrive pas à ouvrir le fichier.txt qu'il est censé lire ; mais c'est un autre sujet et je devrais pouvoir le résoudre.

Je vous tiens au jus...en attendant : sujet résolu ! :)

Merci à tous pour votre aide!!
Hors ligne damjuve # Posté le 13/02/2012 à 00:04:13
éliminez le super flux
Avatar

Études : Epitech Paris

Vu que l entreprise a l aire d avoir des regles de securite assez strict, il est possible que tu n ais pas les permission de lire ton fichier.

Donnez systematiquement votre code, c est complique de trouver qu est ce qui ne vas pas si si non ;)

Les zeros vous ont bien aidé ? Passez votre sujet en resolu, ca nous evitera de perdre du temps a lire des postes qui n attendent plus de réponse ;)


Compétences


Maitrise : (x)HTML/CSS, PHP/MySQL, Javascript, C, C++, Java.
Approfondis : Javascript, MySQL.
Découvre : ASM.

Projets


C++ : Mon Lycée. Jeu 2D avec SFML.
Tuto : A la découverte de l'ADN.


<Deuskull>
"L'enfance et l'adolescence, c'est comme Windows, c'est simple, t'es (trop) guidé, tu ne peux rien faire et tu plantes souvent.
Etre adulte, c'est comme Linux, tu es libre ! Mais pour faire un tout petit truc, putain, qu'est-ce que t'en baves ...
La mort, c'est comme un Mac, çà existe mais personne ne s'en rend vraiment compte sauf à la fin ..."




 
Hors ligne Ricotchet # Posté le 13/02/2012 à 22:13:56
Avatar

Citation : damjuve
Vu que l entreprise a l aire d avoir des regles de securite assez strict, il est possible que tu n ais pas les permission de lire ton fichier.


C'est vrai que ça aurait pu être ça mais j'ai fait une recherche dans le site et la solution est la suivante :
Au lieu d'ouvrir le fichier avec "r"(lecture seule), j'ai fait un exécutable avec "w+"(crée le fichier s'il n'existe pas). Donc dans mon cas il a effectivement créé un fichier vide dans lequel j'ai copié collé le contenu du fichier original, puis je réutilise le programme avec "r" et ... ça marche !!!(un peu étrange mais bon..)

Retour au forum "Langage C" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx