[Langage C] Problème d'exécution

Bonjour,

Lorsque je compile une source en C à l'aide de Visual Studio 2005, l'exécutable ne fonctionne que sur le PC où il a été compilé. Lorsque je place l'exécutable sur un autre PC (avec Windows XP), l'exécutable ne se lance pas et indique le message:

"Cette application n'a pas pu démarrer car la configuration de l'application est incorrecte. Réinstaller l'application pourrait résoudre le problème."

Et ce pour n'importe quel source compilé... il y a-t-il une solution ?

--
"Plus vite, Monsieur P, les Anges n'aiment pas les gros balourds..."
Configuration: Windows XP
Internet Explorer 6.0

9 réponses

  • Votes
  • Date
  • Date décroissante
  1. oui c'est tout à fait normal la compilation est propre à chaque environnement
    1. Il s'agit pourtant ici du même environnement:

      Windows XP Familiale sur le PC qui compile, idem sur l'autre....
      1. Ah? Comment peut-on faire en sorte que ça fonctionne sur un autre PC? C'est une appli qui serait susceptible d'être installé sur un réseau...
        1. tu compiles ton programme sur l'autre pc
          il est mm possible qu'il te mette des messages d'erreurs alors que sur l'autre il n'y en a pas ...
      2. Il faut que je compile le programme sur tous les pc du réseaux!!! C'est un parc informatique d'entreprise qui dispose de plus d'une centaine de machines... Il y a pas une autre solution, genre ajouter du code dans le source...
        1. Si celà est possible poste ton code, ou au moins les entêtes.
      3. On en s'invente pas programmeur.

        Sinon, ton programme fait peut être appel à des dll particuliere qui ne sont pas présente sur l'ordi de programmation.

        Utilise tu du C ANSI?

        Apres tu connais gcc, c'est là que ça devient drôle, il y a pas plus geek que ça.

        Et sinon un programme compiler sous windows en C, s'il a été bien fait, il passe aussi bien sous windows que linux. A par s'il a des spécificés bien aprticuliere, comme lecture dans un fichier (et oui windows et linux, il y a du +1 et du -1 dans l'air, a bon etendeur)
        1. Ce code ne comporte que des appels systemes et rien d'autres.

          #include <stdio.h>
          #include <stdlib.h>

          void main(void)
          {
          system("telnet serveur1");
          system("su");
          system("password");
          }

        2. oui gcc c'est génial
        3. Contributeur
          @ kibel :
          Et sinon un programme compiler sous windows en C, s'il a été bien fait, il passe aussi bien sous windows que linux
          N'importe quoi ! Windows et Linux n'ont pas le même standard de fichier pour les exécutables. Pour Linux, il s'agit du fameux ELF et sur windows de PE. Donc, c'est du 1 et 0, ok, mais ça ne risque pas de marcher si l'OS ne sait pas l'interpréter correctement. De plus cela dépend aussi du processeur (little endian, big endian, ...).

          C'est d'ailleurs l'avantage du byte code comme le JAVA : assurer la portabilité.
        4. @elanore31Oui je connais gcc cependant comme je l'ai déjà précisé, je programme sous Windows... je n'ai pas le choix! Ce n'est pas moi qui décide du système d'exploitation, ce n'est pas moins non plus qui décide du compilateur.... je programme avec ce que l'on me donne.
      4. tu peux lancer ton programme sur le profil de chaque utilisateur au démarrage de la session
        1. Là j'avoue ne pas avoir bien compris.
          1. Ah? Comment peut-on faire en sorte que ça fonctionne sur un autre PC? C'est une appli qui serait susceptible d'être installé sur un réseau...
            c'est une entreprise ? elle dispose bien d'un serveur avec les profils utilisateurs ?
        2. C'est une appli qui communique avec un serveur unix grace à telnet.
          Au lieu de taper x commande à la main, je réalise un petit prog qui fait ça automatiquement.