Создание универсального бинарного файла на OS X - что такое кусочек PPC? - PullRequest
2 голосов
/ 14 августа 2010

Я создаю универсальный двоичный файл для OS X. Я делаю это через QT, который вызывает ld.

ld выдает ошибку при сборке для архитектуры ppc:

in ../MyPathToLib/libcrypto.a, file is universal but not does contain a(n) ppc slice for architecture ppc

Это действительно странно, потому что, когда я вызываю lipo -detailed info на libcrypto.a, я получаю следующий вывод:

lipo libcrypto.a -detailed_info
Fat header in: libcrypto.a
fat_magic 0xcafebabe
nfat_arch 3
architecture ppc
    cputype CPU_TYPE_POWERPC
    cpusubtype CPU_SUBTYPE_POWERPC_ALL
    offset 68
    size 246
    align 2^0 (1)
architecture x86_64
    cputype CPU_TYPE_X86_64
    cpusubtype CPU_SUBTYPE_X86_64_ALL
    offset 316
    size 3251896
    align 2^2 (4)
architecture i386
    cputype CPU_TYPE_I386
    cpusubtype CPU_SUBTYPE_I386_ALL
    offset 3252212
    size 2556576
    align 2^2 (4)

Странная вещь в том, что если я собираю с помощью arch x86, все строится нормально,Я вижу, что с lipo i386 и ppc оба есть, но, видимо, ему нравится только i386.Я сам создал эту библиотеку libcrypto.a, трижды собрав OpenSSL и соединив их вместе с lipo.

Кто-нибудь знает, как она может быть универсальной, иметь раздел PPC, но не содержать PPC?ломтик (что бы это ни было)?

1 Ответ

3 голосов
/ 14 августа 2010

Я думаю, вы не правильно создали универсальный libcrypto.a. Выходные данные lipo говорят, что размер фрагмента ppc составляет всего 246 байтов, в то время как фрагменты i386 / x86_64 имеют 2-3 мегабайта каждый. Я полагаю, что версия libcrypto.a для ПК, которую вы кормили липосакцией, была неисправна.

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