GCC: извините, не реализовано: 64-битный режим не скомпилирован в - PullRequest
27 голосов
/ 14 января 2012

Я собрал GCC 4.7 в моей 32-битной системе Linux x86.При попытке кросс-компиляции с флагом -m64 я получаю следующее:

извините, не реализовано: 64-битный режим не скомпилирован в

, пока компилятор предоставилпо умолчанию в моем дистрибутиве Linux можно кросс-компилировать с -m64.

Что мне нужно передать ./configure, чтобы включить 64-битный режим в GCC?Это параметры, которые я использовал для сборки 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)

РЕДАКТИРОВАТЬ:

- enable-multilib и --enable-target = i686-pc-linux-gnux86_64-pc-linux-gnu

не меняет ситуацию.Компилятор все еще жалуется на то, что 64-битный режим не скомпилирован в:

$ g ++ -v Использование встроенных спецификаций.COLLECT_GCC = g ++ COLLECT_LTO_WRAPPER = / usr / local / libexec / gcc / i686-pc-linux-gnu / 4.7.0 / lto-wrapper Цель: i686-pc-linux-gnu Конфигурируется с помощью: ./configure --enable-multiarch --with-cloog = / usr / local / --with-mpfr = / usr / local / --with-ppl = / usr / local / --verbose --enable-languages ​​= c, c ++ --enable-multilib --enable-target = i686-pc-linux-gnu, x86_64-pc-linux-gnu Модель потока: posix gcc версия 4.7.0 20120113 (экспериментальная) (GCC)

$ g ++ -m64 c.cpp c.cpp: 1: 0: извините, не реализовано: 64-битный режим не скомпилирован в

Ответы [ 4 ]

21 голосов
/ 11 октября 2013

Обычно это означает, что вы используете неправильный (старый) компилятор.

Новые компиляторы поддерживают как -m32, так и -m64. Вы должны установить PATH для новых компиляторов (в gcc, подкаталоге MinGW Rtools) до любых старых компиляторов в Rtools.

Попробуйте обновить бинарный путь к вашему компилятору до 64-битной версии. Другие ресурсы, такие как папки lib, также должны измениться соответствующим образом.

10 голосов
/ 14 января 2012

Вам понадобятся и binutils, и gcc, настроенные с:

--enable-multilib

и, вероятно:

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

для поддержки multilib (опции -m64 и / или -m32). Вам также понадобятся две версии таких вещей, как glibc, чтобы иметь возможность связывать и запускать полученные двоичные файлы.

1 голос
/ 21 августа 2016

Только что решил эту проблему.В переменных среды удалите записи в любом устаревшем пакете c ++.

В моем случае я работал в Anaconda на 64-битной Windows.В анаконде я выполнил 'conda install mingw libpython'.Mingw для компилятора c ++.Но я ранее установил Cygwin Mingw для C ++ компиляций, которые не были обновлены.Это причина конфликта.Я решил эту проблему, просто удалив переменную среды (PATH), соответствующую этим пакетам c ++.
Я перепробовал почти все форумы, это решение работает.

Пожалуйста, дайте мне знать, если кому-то понадобится помощь.:)

0 голосов
/ 08 мая 2019

Были те же проблемы. Мое решение:

Обновите все (пакеты R, Rstudio, R) и закройте Rstudio.
Удалите Rtools и установите последнюю версию.
Добавьте только 2 записи в разделе Переменные среды / Системные переменные / Путь:
- C: \ Rtools \ bin
- C: \ Rtools \ mingw_64 \ bin (! Не 32-битная версия)
Записи пути должны быть в этом порядке и выше% SystemRoot \ System32
Я НЕ установил в настоятельно рекомендуемом месте по умолчанию на C:

После этого откройте Rstudio и переустановите Rcpp через консоль:
install.packages ( "Rcpp")

Проверьте, работает ли он с:
Rcpp :: evalCpp ( "2 + 2")

После этого просто переключитесь на терминал в Rstudio, перейдите в исходную папку cmdstan и введите «make build».
--- CmdStan v2.19.1 построен ---
Готово! * * 1023

Детали:

*> sessionInfo()
R version 3.6.0 (2019-04-26)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17763)
Matrix products: default
locale:
[1] LC_COLLATE=Slovenian_Slovenia.1250  LC_CTYPE=Slovenian_Slovenia.1250    LC_MONETARY=Slovenian_Slovenia.1250 LC_NUMERIC=C                       
[5] LC_TIME=Slovenian_Slovenia.1250    
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     
loaded via a namespace (and not attached):
[1] compiler_3.6.0 tools_3.6.0*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...