Подтвердить что ты не робот

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-битный режим не скомпилирован в

4b9b3361

Ответ 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