GCC: désolé, non implémenté: mode 64 bits non compilé dans

J’ai construit GCC 4.7 sur mon système Linux x86 32 bits. Lorsque j’essaie de comstackr avec le drapeau -m64, je reçois

désolé, non implémenté: mode 64 bits non compilé dans

tandis que le compilateur fourni par défaut par ma dissortingbution Linux peut comstackr de manière croisée avec -m64.

Que dois-je passer à ./configure pour activer le mode 64 bits dans GCC? Voici les options que j’ai utilisées pour comstackr GCC 4.7:

$ /usr/local/bin/g++ -v Using built-in specs. COLLECT_GCC=/usr/local/bin/g++ COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.7.0/lto-wrapper Target: i686-pc-linux-gnu Configured with: ./configure --enable-multiarch --with-cloog=/usr/local/ --with-mpfr=/usr/local/ --with-ppl=/usr/local/ --verbose --enable-languages=c,c++ Thread model: posix gcc version 4.7.0 20120113 (experimental) (GCC) 

MODIFIER:

–enable-multilib et –enable-cibles = i686-pc-linux-gnu, x86_64-pc-linux-gnu

ne change pas la situation. Le compilateur se plaint toujours du mode 65 bits non compilé dans:

$ g ++ -v Utilisation des spécifications intégrées. COLLECT_GCC = g ++ COLLECT_LTO_WRAPPER = / usr / local / libexec / gcc / i686-pc-linux-gnu / 4.7.0 / lto-wrapper Cible: i686-pc-linux-gnu Configuré avec: ./configure –enable-multiarch – -with-cloog = / usr / local / –with-mpfr = / usr / local / –with-ppl = / usr / local / –verbose –enable-languages ​​= c, c ++ –enable-multilib – -enable-cibles = i686-pc-linux-gnu, x86_64-pc-linux-gnu Modèle de fil: posix gcc version 4.7.0 20120113 (expérimental) (GCC)

$ g ++ -m64 c.cpp c.cpp: 1: 0: désolé, non implémenté: mode 64 bits non compilé dans

Vous aurez besoin de binutils et de gcc configurés avec:

 --enable-multilib 

et probablement:

 --enable-targets=i686-pc-linux-gnu,x86_64-pc-linux-gnu 

pour supporter multilib (les -m64 et / ou -m32 ). Vous aurez également besoin de deux versions de choses comme glibc pour pouvoir lier et exécuter les fichiers binarys résultants.

Cela signifie généralement que vous utilisez le mauvais (vieux) compilateur.

Les nouveaux compilateurs prennent en charge -m32 et -m64. Vous devez définir le PATH sur les nouveaux compilateurs (dans le sous-répertoire gcc, MinGW de Rtools) avant tous les anciens compilateurs dans Rtools.

Essayez de mettre à jour le chemin de la bibliothèque binary de votre compilateur vers la version 64 bits. Les autres ressources telles que les dossiers lib devraient également changer en conséquence.

Juste résolu ce problème. Dans les variables d’environnement, supprimez les entrées d’un package c ++ obsolète.

Dans mon cas, j’ai travaillé sous Anaconda sur Windows 64 bits. Dans anaconda, j’ai effectué ‘conda install mingw libpython’. Mingw est pour le compilateur c ++. Mais j’avais précédemment installé mingw pour compilations c ++ de cygwin qui n’avait pas été mis à jour. C’est la raison du conflit. J’ai résolu ce problème en supprimant simplement la variable d’environnement (PATH) correspondant à ces packages c ++.
J’ai essayé presque tous les forums, cette solution fonctionne.

Faites-le moi savoir au cas où quelqu’un aurait besoin d’aide. 🙂