8
votes

Impossible d'exécuter C Programme compilé avec Mingw dev-C ++ sur 64 bits Vista

Il y a quelques jours, j'ai commencé à programmer avec C après la programmation avec C ++, ma machine Windows Vista 64bit n'a pas pu créer un projet C. J'ai recompilé le code avec le compilateur Mingw dev-C ++ sans problème.

Cependant, lorsque j'ai dirigé le code, j'ai reçu l'erreur suivante:

application 16 bits non prise en charge

Le programme ou la fonctionnalité "\ ?? \ c: \ dev-cpp \ gcc.exe" ne peut pas démarrer ou exécuter en raison d'une incompatibilité avec des versions de 64 bits de Windows. Veuillez contacter le fournisseur de logiciels pour demander si une version compatible Windows 64 bits est disponible.

est-ce un problème avec la compilation de code C à l'aide d'un compilateur C ++?


6 commentaires

Quel est le message d'erreur exacte , quel compilateur utilisez-vous et quelle plate-forme êtes-vous?


Et quel compilateur ou votre IDE utilisez-vous?


Juste pour faire cela clair, vous pouvez compiler c pendant 64 bits. Maintenant, quel est le compilateur et le message d'erreur?


Basé sur l'erreur que vous collez, cela n'a rien à voir avec votre code - c'est que votre système n'aime pas votre binaire GCC.EXE.


J'ai le même problème avec GCC (G ++) 4.5.2. Quand j'essaie de compiler le code avec OpenMpi, j'ai toujours


Avez-vous envisagé d'installer une distribution Linux? Ils sont très développeurs amicaux


5 Réponses :


6
votes

L'erreur que vous voyez est d'utiliser un logiciel antique (comme dans 16 bits Windows 3.1 ERA) que Windows 64 bits ne fournit pas de compatibilité à l'envers. Cela n'a rien à voir avec c ou C ++, juste un très vieux compilateur.

Vous pouvez soit installer Windows 7 avec XP-Mode, qui fournit une machine virtuelle XP fonctionnant de manière presque transparente sous Windows 7 ou une autre solution de virtualisation 32 bits ou téléchargez une version plus récente de GCC.EXE ou d'autres. compilateur âgé de moins de 20 ans:

voir Cygwin , minggw ou Visual Studio Express .


3 commentaires

Vs ne supporte même pas C99 et Cygwin Ce n'est pas pour le développement.


@user: Si Sheldon utilise un compilateur 16 bits, le support de C99 n'est certainement pas une priorité, donc vs est aussi bon que toute autre chose sur Windows. Et je suis curieux de savoir pourquoi vous prétendez que Cygwin n'est pas pour le développement?


Souhaitez-vous suggérer à quelqu'un de développer en C avec une machine virtuelle lorsque votre système d'exploitation a un très bon compilateur (MINGW)? Aussi, vous vous souciez de savoir que l'OP est un débutant, mais vous vous suggérez de 1 bon compilateur, à mon avis, il existe Qtpreator qui vient de mieux pour un débutant dans n'importe quel scénario qt-project.org/downloads#qt-creator .



1
votes

C'est une sorte de problème avec Mingw. Le problème n'est pas parce que vous utilisez un ancien compilateur. Cela m'est arrivé avec la dernière version de Mingw Compilers. J'ai trouvé une solution de contournement qui pourrait aider certaines personnes. Ce problème se manifeste lorsque vous construisez mon projet avec un maquillage. Si je le construisie manuellement par la ligne de commande, cela fonctionne bien, le .exe résultant exécute sans problèmes.

En compilant manuellement, je veux dire par exemple pour C ++:

C: \ mydir> g ++ source1.cppp source2.cpp -o myProg.exe

Mon application était très petite, juste quelques sources dont je devais tester des changements. Si vous avez une application plus complexe avec un maquillage, cette solution de contournement ne vous aidera probablement pas.


0 commentaires

5
votes

J'ai le même message d'erreur lors de l'ajout accidentellement le commutateur -C qui indique au compilateur de ne pas relier l'exécutable. Supprimer le commutateur a fait fonctionner à nouveau.

> GCC --Help

...

-c compile et assembler, mais ne liez pas


1 commentaires

J'ai fait la même erreur.



1
votes

J'ai eu un problème similaire et il s'agissait de la réponse de Mmeemens qui me donnait l'allusion pour le résoudre. Ce n'est pas lié à la version MINGW. C'était juste que mon fichier .exe n'était pas réellement exécutable.

J'essayais de compiler et de construire avec la commande: xxx

mais avec -c, g ++ juste compile sans relier. Le CPPTest.exe résultant est juste le fichier CPPTest.o (fichier d'objet binaire, mais non exécutable) avec un nom différent.

Pour compiler et lier I puis utilisé (comme indiqué par Alejandro): xxx

ou en deux étapes: xxx

Ceux-ci créent l'exécutable réel.


0 commentaires

1
votes

J'ai eu la même erreur lors de l'utilisation de Notepad ++, j'ai trouvé l'erreur que j'ai faite. J'essayais de créer un fichier exécutable à partir d'un fichier d'en-tête.

Le fichier doit être enregistré en tant que fichier.cpp ou fichier.c au lieu de fichier.hpp ou fichier.h

je changeait également des langues, cependant de C à C ++


0 commentaires