g ++ на MacOSX не работает с -arch ppc64 - PullRequest
5 голосов
/ 14 мая 2010

Я пытаюсь собрать универсальный бинарный файл на MacOSX с помощью g ++.Тем не менее, это на самом деле не работает.Я пробовал с этим простым фиктивным кодом:

#include <iostream>
using namespace std;
int main() {
    cout << "Hello" << endl;
}

Это прекрасно работает:

% g++ test.cpp -arch i386 -arch ppc -arch x86_64 -o test
% file test
test: Mach-O universal binary with 3 architectures
test (for architecture i386):   Mach-O executable i386
test (for architecture ppc7400):    Mach-O executable ppc
test (for architecture x86_64): Mach-O 64-bit executable x86_64

Однако это не так:

% g++ test.cpp -arch i386 -arch ppc -arch x86_64 -arch ppc64 -o test
In file included from test.cpp:1:
/usr/include/c++/4.2.1/iostream:44:28: error: bits/c++config.h: No such file or directory
In file included from /usr/include/c++/4.2.1/ios:43,
                 from /usr/include/c++/4.2.1/ostream:45,
                 from /usr/include/c++/4.2.1/iostream:45,
                 from test.cpp:1:
/usr/include/c++/4.2.1/iosfwd:45:29: error: bits/c++locale.h: No such file or directory
/usr/include/c++/4.2.1/iosfwd:46:25: error: bits/c++io.h: No such file or directory
In file included from /usr/include/c++/4.2.1/bits/ios_base.h:45,
                 from /usr/include/c++/4.2.1/ios:48,
                 from /usr/include/c++/4.2.1/ostream:45,
                 from /usr/include/c++/4.2.1/iostream:45,
                 from test.cpp:1:
/usr/include/c++/4.2.1/ext/atomicity.h:39:23: error: bits/gthr.h: No such file or directory
/usr/include/c++/4.2.1/ext/atomicity.h:40:30: error: bits/atomic_word.h: No such file or directory
...

Любая идея, почему этоэто?

Я на MacOSX 10.6.Я установил Xcode 3.2.2 со всеми SDK, с которыми он поставляется.GCC 4.2 по умолчанию.GCC 4.0 выдает несколько разных ошибок, но ведет себя аналогично.

1 Ответ

7 голосов
/ 14 мая 2010
Поддержка

ppc64 в Snow Leopard прекращена. Вы по-прежнему можете использовать ppc64, если собираете и ссылаетесь на Mac OS X 10.5 SDK.

Попробуйте выполнить следующую команду в командной строке:

g++ test.cpp -arch i386 -arch ppc -arch x86_64 -arch ppc64 -mmacosx-version-min=10.5 -isysroot/Developer/SDKs/MacOSX10.5.sdk -DMACOSX_DEPLOYMENT_TARGET=10.5 -o test

Или для использования 10.4 SDK:

g++-4.0 test.cpp -arch i386 -arch ppc -arch x86_64 -arch ppc64 -mmacosx-version-min=10.4 -isysroot/Developer/SDKs/MacOSX10.4u.sdk -DMACOSX_DEPLOYMENT_TARGET=10.4 -o test

Обратите внимание: если вы хотите использовать 10.4 SDK, вам придется использовать gcc 4.0 (или g ++ 4.0). Apple GCC 4.2 не поддерживает 10.4 SDK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...