G++ type CPU

Signaler
Messages postés
104
Date d'inscription
samedi 7 décembre 2002
Statut
Membre
Dernière intervention
17 août 2009
-
Messages postés
104
Date d'inscription
samedi 7 décembre 2002
Statut
Membre
Dernière intervention
17 août 2009
-
Bonjour,

Je suis actuellement sur un AMD64 avec Linux 64 bits.
Lorsque je compile mon code tout va bien mais il n'est chargeable que sur AMD64.
Or j'aurais besoin qu'il tourne un peu n'importe où (i586 ou i686) mais lorsque je met "-march=i586 -mtune=i586" j'obtiens :
"main.cpp:1: erreur: le processeur sélectionné ne supporte pas le jeu d'instructions x86-64"

Comment faire pour compiler ?
La publication des sources serait embêtant car ce programme doit être utilisable directement (double clic).

RaphAstronome
[url]http://www.astro5000.com/url

2 réponses

Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
3
Bonjour, je ne sais pas trop d'où celà vient, peut-être qu'il y a quelque chose de spécial à réaliser avec g++ pour la compilation croisée, celà vient peut-être de ta variable CHOST qui doit changer.
CHOST="i586-pc-linux-gnu"
CFLAGS="-march=i586 -mtune=i586"
Par contre il me semble que l'option -mtune est dépréciée sur les dernières versions de g++ (à vérifier).
Sinon, le flag "-march=i586" c'est pas plutôt pour les pentium mmx ? La encore je ne suit pas certain, mais si tu veux compiler pour tous les processeurs x86 AMD/Intel il me semble qu'il faille utiliser.
CHOST="i386-pc-linux-gnu"

CFLAGS="-march=i386"

Pour plus d'informations, va voir ce site: http://gentoo-wiki.com/Safe_Cflags
Si tout ceci ne marche pas tappes "cross compilation" dans google et tu trouveras sans doute plus d'informations à ce sujet.
Dis-moi si tu à réussi à faire marcher tout ça, ca m'interesserais bien de savoir comment tu as fais.

Merci et bonne chance.

Bouba
Messages postés
104
Date d'inscription
samedi 7 décembre 2002
Statut
Membre
Dernière intervention
17 août 2009

Je suis pas dans un Makefile mais un script bash et CHOST n'existe pas.