2

Я пытаюсь загрузить последнюю версию gcc 4.8.2 на мою машину. Я пробовал установить как MacPorts, так и тот, который устанавливается вместе с бинарной установкой gfortran.

Для минимального исходного файла я получаю ошибки в зависимости от порядка флагов -arch.

В частности, -arch x86_64 -arch i386 (или один из них) работает:

% /opt/local/bin/gcc-mp-4.8 -arch x86_64 -arch i386 conftest.c
% /opt/local/bin/gcc-mp-4.8 -arch x86_64 -arch i386 -O3 conftest.c

Но -arch i386 -arch x86_64 завершается ошибкой:

% /opt/local/bin/gcc-mp-4.8 -arch i386 -arch x86_64 conftest.c
/var/folders/6l/7gzvw1zs42sbhj7_hlrpykfm0000gv/T//cc6JCBdP.s:5:bad register name `%rbp'
/var/folders/6l/7gzvw1zs42sbhj7_hlrpykfm0000gv/T//cc6JCBdP.s:7:bad register name `%rsp'
/var/folders/6l/7gzvw1zs42sbhj7_hlrpykfm0000gv/T//cc6JCBdP.s:10:bad register name `%rbp'

% /opt/local/bin/gcc-mp-4.8 -arch i386 -arch x86_64 -O3 conftest.c
/var/folders/6l/7gzvw1zs42sbhj7_hlrpykfm0000gv/T//ccs67E0q.s:34:FATAL:Bad fx_size (0x8) in fix_to_relocation_info()

Помогите!

Минимальный источник:

 int main ()
 {
  return 0;
 }

Для информации:

% /opt/local/bin/gcc-mp-4.8 --version
gcc-mp-4.8 (MacPorts gcc48 4.8.2_0+universal) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

1 ответ1

0

gcc/g++ распространяемый его разработчиками, не поддерживает несколько флагов -arch одновременно. Только Apple-модифицированные версии gcc/g++ , например, распространяемые Apple с версиями Xcode ранее 4.2, поддерживают это.

Чтобы скомпилировать несколько архитектур с использованием не-Apple gcc/g++ , скомпилируйте для каждой архитектуры отдельно, а затем объедините результаты, используя lipo .

/opt/local/bin/gcc-mp-4.8 -arch x86_64 -o conftest-x86_64 conftest.c
/opt/local/bin/gcc-mp-4.8 -arch i386 -o conftest-i386 conftest.c
lipo conftest-x86_64 conftest-i386 -create -output conftest

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .