Как собрать C ++ для OSX 10.4, 10.5 и 10.6 в Xcode с динамическими библиотеками - PullRequest
2 голосов
/ 06 февраля 2010

Я создаю инструмент командной строки C ++ в XCode. Проект содержит dylibs для curl, boost и log4cpp.

В идеале я хотел бы создать универсальный двоичный файл i386, который поддерживает от 10,4 до 10,6.

Кажется, я не могу заставить Xcode компилироваться, когда я нацеливаюсь на 10.4, он говорит такие вещи, как отсутствие такого файла или каталога.

Когда я нацеливаюсь на 10,6 x_64, он собирается нормально, но 10,5 i386 жалуется, что мои dylibs не соответствуют правильной архитектуре для 10,5?

Какую версию GCC я должен использовать?

Кроме того, когда я создаю установочный пакет с помощью PackageMaker, куда установщик должен поместить dylibs, необходимые для инструмента?

Большое спасибо заранее, Тоби. * * 1013

Ответы [ 4 ]

2 голосов
/ 07 февраля 2010

Сторонние библиотеки были собраны для 10.6 x_64, мне нужно было перестроить их для 10.4.

Я установил 10.4u SDK, загрузив xcode 3.2 и выбрав «установить поддержку 10.4» во время процесса установки.

После перестройки каждой библиотеки с GCC 4.0 против 10.4u sdk мой проект успешно скомпилирован.

Я также использовал статические библиотеки, поэтому мне не нужно включать их в установщик.

0 голосов
/ 06 февраля 2010

Ваши библиотеки, вероятно, созданы только для X86_64. Вам нужно перекомпилировать ваши библиотеки как универсальные двоичные файлы.

Редактировать: Использование 10.4 SDK.

0 голосов
/ 06 февраля 2010

В меню «Проект» выберите «Установить активный SDK» и выберите Mac OS X 10.4.

Если при использовании этого SDK вы получаете ошибки связи, вы, вероятно, добавили библиотеки, которые не были собраны для 10.4

Убедитесь, что вы используете библиотеки 10.4, например, libcurl будет найден в

/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/libcurl.dylib

Вы, вероятно, связываетесь с

/usr/lib/libcurl.dylib

которая будет версией для вашей работающей ОС (я полагаю, 10.6)

0 голосов
/ 06 февраля 2010

Вы должны иметь возможность просто выбрать 10.4 SDK и gcc 4.0 и создать один исполняемый файл, который будет работать на любом уровне от 10.4 и выше.

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