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. 🙂