Ponieważ Apple nie obsługuje GCC 4.6 lub GCC 4.7, właśnie przełączyłem się na kompilację MacPorts GCC 4.6/4.7. Miałem jednak problem z budowaniem kodu w architekturze "Universal".Czy mogę skompilować uniwersalny kod za pomocą GCC Macports?
Tradycyjnie robiłbym g++ -arch i386 -arch x86_64 ...
, aby skompilować mój plik binarny dla architektury co najmniej i386/x86_64. Zrobiłem trochę wyszukiwania i zdałem sobie sprawę, że opcja -arch jest obsługiwana tylko przez kompilatory Apple. Oczywiście nie działało to z komputerami Macports. Najlepsze, co mogę zrobić, to użyć opcji -m32
/-m64
, aby określić żądaną architekturę. Jednak spowoduje to utworzenie binarnego pliku w formacie i386 lub x86_64. To, czego naprawdę chcę, to uzyskać plik binarny zarówno w architekturze (Universal), jak i w przypadku oryginalnych kompilatorów GCC.
Czy to nie jest obsługiwany lub znany problem? Próbowałem przez całą noc szukając odpowiedzi w Google, ale nie dostałem nic przydatnego. Więc po prostu zaczynam wątpić, czy jestem jedyną osobą, która miała ten problem i przeoczyłem coś naprawdę ważnego, żeby to zadziałało? Naprawdę doceniam, czy ktoś może dać mi jakieś sugestie.
BTW. Zainstalowałem warianty gcc46 +universal
, ale nie wyprodukowałem niczego naprawdę uniwersalnego oprócz kompilowania oddzielnych plików binarnych dla każdej architektury.
Xing.
Dzięki, że działa. Nie wiedziałem, że istnieje lipo, chyba wszystko, czego naprawdę potrzebuję, to lipo. Potrzebuję zmienić niektóre moje pliki Makefile, aby zatrzymać flagę arch i użyć lipo do stworzenia uniwersalnego kodu teraz :) –