MacOS'taki gcc 4.8 -arch sırasına bağlı olarak başarısız


2

Makinemde gcc 4.8.2'nin son sürümünü almaya çalışıyorum. MacPorts'un yanı sıra, gfortran'ın ikili kurulumunun yanında kurulu olan kurulumları da denedim.

En az kaynak dosyası için -arch bayraklarının sırasına bağlı olarak hata alıyorum.

Spesifik olarak, -arch x86_64 -arch i386(veya yalnızca bir tanesi) çalışır:

% /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

Ancak -arch i386 -arch x86_64başarısız:

% /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()

Yardım et!

Asgari kaynak:

 int main ()
 {
  return 0;
 }

Bilgi için:

% /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.

Yanıtlar:


0

gcc/ g++geliştiricileri tarafından dağıtıldığı gibi -archeşzamanlı olarak birden fazla bayrağı desteklemiyor . Yalnızca gcc/ Apple tarafından değiştirilmiş olan / g++örneğin, Apple tarafından 4.2'den önceki Xcode sürümleri ile dağıtılan sürümleri, bunu desteklemektedir.

Apple olmayan gcc/ kullanarak birden fazla mimariyi g++derlemek için, her bir mimari için ayrı ayrı derleyin, sonra sonuçları kullanarak birleştirin 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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.