GCC: извините, не реализовано: 64-разрядный режим, не скомпилированный в
Я собрал 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-gnu, x86_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 / - -v erbose --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-битный режим не скомпилирован в
Ответы
Ответ 1
Вам понадобятся оба binutils и gcc, настроенные с помощью:
--enable-multilib
и, возможно:
--enable-targets=i686-pc-linux-gnu,x86_64-pc-linux-gnu
для поддержки multilib (параметры -m64
и/или -m32
). Вам также понадобятся две версии таких вещей, как glibc, чтобы иметь возможность связывать и запускать полученные двоичные файлы.
Ответ 2
Это обычно означает, что вы используете неправильный (старый) компилятор.
Новые компиляторы поддерживают как -m32, так и -m64. Вы должны установить PATH для новых компиляторов (в подкаталоге gcc, MinGW Rtools) до любых старых компиляторов в Rtools.
Попробуйте обновить двоичный путь компилятора lib до 64-битной версии. Другие ресурсы, такие как папки lib, также должны соответственно меняться.
Ответ 3
Просто разрешил эту проблему.
В переменных среды удалите записи в любой устаревший пакет С++.
В моем случае я работал в Anaconda на Windows 64-bit. В anaconda я выполнил 'conda install mingw libpython'.
Mingw для компилятора С++. Но ранее я установил cygwin mingw для компиляций С++, которые не были обновлены. Это и есть причина конфликта.
Я решил эту проблему, просто удалив переменную окружения (PATH), соответствующую этим пакетам С++.
Я пробовал почти все форумы, это решение работает.
Пожалуйста, дайте мне знать, если кому-то нужна помощь.:)
Ответ 4
Были те же проблемы. Мое решение:
Обновите все (пакеты 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 build ---
> sessionInfo() R версия 3.6.0 (2019-04-26) Платформа: x86_64-w64-mingw32/x64 (64-разрядная версия) Под управлением: Windows 10 x64 (сборка 17763) Продукты матрицы: языковой стандарт по умолчанию: [1] LC_COLLATE = Словенская_Словения .1250 LC_CTYPE = Словенская_Словения .1250 LC_MONETARY = Словенская_Словения .1250 LC_NUMERIC = C
[5] LC_TIME = Словения_Словения .1250
прикрепленные базовые пакеты: [1] stats graphics grDevices использует базу данных наборов методов
загружается через пространство имен (и не присоединяется): [1] compiler_3.6.0 tools_3.6.0