Cpcdos
Messages postés425Date d'inscriptionsamedi 11 juillet 2009StatutMembreDernière intervention28 octobre 2016
-
27 févr. 2011 à 18:17
Cpcdos
Messages postés425Date d'inscriptionsamedi 11 juillet 2009StatutMembreDernière intervention28 octobre 2016
-
30 mai 2011 à 18:05
[i]Bonjour,
J'ai 15 ans , j'ai/je développe depuis un moment un systeme d'exploitation (autonome)
qui tourne en 16 bit sous dos , nomée Microsf01 Cpcdos OS1 , ecrit en CpcdosC+ (language de programmation que j'ai developpé (en source , qb) )
voir mon site : ou
et j'ai décidé de faire une nouvelle version , OS2( TESTE [beta] de Cpcdos ) mais en C j'ai trouvé un compilateur , gcc sous linux (linux c'est pas trop mon truk).
Quand de fais la compilation avec linux ( gcc teste.c ) j'obtient un fichier ( a.out ) mais moi je veux un .exe qui peut s'executer sous ms-dos !
JulSoft
Messages postés354Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention11 mars 2013 28 févr. 2011 à 21:57
Hmmm... compiler en 16 bits... Pas avec une version "standard" de gcc en tout cas. De base, les compilateurs sont compilés (forcément...) pour l'architecture sur laquelle ils tournent. Plus généralement, toute la chaine de compilation (compilateur et éditeur de liens) sont mis en place pour produire des exécutables pour la machine sur laquelle ils tournent.
Les versions actuelles de windows (depuis windows 95 sauf erreur) étant 32bits(architecture IA32) (certaines 64 bits, donc architecture x86_64), tu ne peux donc pas exécuter ton code susr une machine 16 bits...
Si tu veux changer d'OS ou d'architecture (ou les 2), il te faut te tourner vers la cross-compilation. Sous linux, il existe de nombreux outils pour mettre en place des chaines de compilations croisées (cross toolchain en anglais). Elles sont par contre toutes faites pour créer des binaires linux. Je ne saurais honêtement pas où chercher une toolchain IA32->16bits sous windows avec les librairies windows (également pour ton architecture 16 bits donc).
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 29 mai 2011 à 17:58
Salut,
Copier coller d'un de mes MP envoyé à quelqu'un d'autre, sujet proche (Génération d'exe 16 bits via gcc).
=========================================
Je ne vais pas pouvoir t'aider, ce domaine n'est vraiment pas ma spécialité.
Il semble quand même qu'il est deux trois infos sur internet, genre là, il semble utiliser du code asm (boot.asm) et du code C (kernel.c) :
http://stackoverflow.com/questions/2713340/help-in-building-an-16-bit-os
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 27 févr. 2011 à 21:11
gcc ne fait pas d'exécutable pour Windows tout simplement.
Regarde du côté de mingw disponible dans cygwin.
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
JulSoft
Messages postés354Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention11 mars 2013 27 févr. 2011 à 23:53
@CptPingu: sisi, gcc est capable de compiler pour windows... Par contre il faut qu'il ait lui même été compilé pour le faire (soit c'est une version windows de gcc, soit une version linux faite pour faire de la cross compilation, et c'est encore une autre histoire...).
De base, quelle que soit la version, la sortie de gcc est un fichier a.out. pour qu'il porte un autre nom (et ce n'est qu'un renommage), il faut lui préciser le nom du fichier de sortie avec le paramètre -o
exemple:
gcc main.c -o mon_programme.exe
Mais encore une fois, de base, on ne peut pas compiler pour windows depuis un environnement Linux, il faut mettre en place toute la chaine de compilation appropriée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 28 févr. 2011 à 10:14
@JulSoft: C'est tout à fait vrai (Y en a un dans le vieux dev-cpp si je ne m'abuse). Je parlais du gcc de base. De base il ne le fait pas. Mais c'est une précision intéressante, je ne me suis jamais penché sur ce sujet. Si tu écris un petit tuto sur la cross compilation, je serais le premier à te lire :p
@Cpcdos: Un executable Windows et un executable Linux diffèrent par la forme. L'extension ne change rien. Tu pourrais aussi compiler avec un compilateur Windows, tout simplement, non ? (Celui contenu dans Visual Studio ne convient pas ?)
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
JulSoft
Messages postés354Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention11 mars 2013 28 févr. 2011 à 11:12
@CptPingu: Je n'ai pas vraiment pratiqué la cross-compilation... 2-3 tentatives de linux à linux, mais pour des architectures différentes, et rien de franchement concluant, du coup va faloir attendre un peu;-)
Cpcdos
Messages postés425Date d'inscriptionsamedi 11 juillet 2009StatutMembreDernière intervention28 octobre 20161 28 févr. 2011 à 19:22
j'ai trouvé et testé le compilateur gcc sous windows, mais le problème quand je compile en .exe ou même .com (avant de tester sous dos)quand je fais une edition hexadécimale, je trouve en première ligne :" This program cannot be run in dos mode " , donc pas la pène de le tester sous dos.