Insérer un programme dans un autre [ Linux ]

Résolu/Fermé
Mictik - 23 mars 2008 à 18:50
vlmath Messages postés 793 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 - 6 avril 2008 à 14:28
Bonjour,

J'ai un programme proncipal dans lequel j'ai besoin de faire intervenir d'autre programmes mais je ne sais pas comment les déclarer et comment faire pour qu'ils s'éxécutent. Je programme en C sous linux.

Est-ce que quelqu'un pourrait m'aider svp ?
A voir également:

10 réponses

vlmath Messages postés 793 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
24 mars 2008 à 11:16
Salut,

Qu'est ce que tu veux dire exactement par "besoin de faire intervenir d'autre programmes" ?

Tu veux lancer de programmes du système qui sont déjà compilés ou tu dois juste interger des bouts de codes ?

@Bientôt
0
En fait je doit programmer la bataille navale. J'ai donc un programme principal. J'aimerais insérer un programme que je fait par exemple un programme qui gère les tirs des 2 joueurs. C'est des bouts de code qui seront compilé en même temps que le main.
0
vlmath Messages postés 793 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
25 mars 2008 à 14:42
Alors pour faire ça, tu dois faire un inlcude, comme pour les bibliothèques normales, mais avec des " et pas des < :
#include "fichier.c"

Tu pourras utiliser tes fonction comme d'habitude après.
0
ok merci. je vais essayer sa
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
salut,

j'aimerais savoir aussi une chose au niveau de la compilation des programmes. Comment faire pour compiler avec les makefiles si j'ai un fichier principal dans lequel un fichier1 et un fichier2 interviennent. Comment ecrire la ligne de commande sachant que fichier 1 et 2 dépendent du main et si on ajoute un fichier3 qui intervient dans fichier2 ?

merci d'avance.
0
vlmath Messages postés 793 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
26 mars 2008 à 17:14
Personnellement, je ne me fais jamais de makefile

Pour la compilation, il te suffit de faite la liste des fichiers qui interviennent :
gcc main.c fichier1.c fichier2.c -o out


Je n'ai jamais compilé un programme avec des includes qui font à leur tour des includes ... Essaye de mettre uniquement le premier niveau d'include, et si ça ne marche pas, mets la totalité ...
0
ok merci pour ta réponse. je vais essayer tout sa.
0
Salut,

J'ai une fonction affichage.c déclarée comme sa: #include "affichage.c" mais je n'arrive pas à la faire intervenir dans le programme. Elle doit afficher un tableau. Normalement j'ai pas d'argument à mettre ? Et pourquoi le compilateur me dit:

redefinition of `int main()`
`int main prevously defined here`


et il me dit que ma fonction affichage n'est pas déclaré.

Que faire ?
0
vlmath Messages postés 793 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
1 avril 2008 à 17:21
C'est normal, en C tu ne peux pas mettre plusieurs fois la même fonction.

Tu devrais te faire une bibliothèque avec les fonctions qui sont en commun, et les appeler dans tes deux programmes.
0
Salut,

J'aurais une autre question mais sur l'interface graphique ce coup là. Comment je peut faire une interface graphique en C? Elle se fait dans un programme à part? On la déclare comment ? J'ai aucune idée de comment sa se fait. Voila

merci d'avance.
0
vlmath Messages postés 793 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
6 avril 2008 à 14:28
Salut,

Tu peux le faire dans deux fichiers séparer, mais c'est pas obligatoir ...

Le plus simple, ça serait que tu cherches sur internet une source, et que tu regardes comment elle fonctionne ...
C'est des sources qui sont généralement relativement longues, mais le model est toujours le même ... En tout cas, tu peux tout faire avec certains models.

@Bientôt
0