Компиляция программы на C для предыдущей версии OS X

Я написал фрагмент кода на C, который использует внешние библиотеки libfftw3 и libaiff. Код прекрасно компилируется и выполняется на моем компьютере, который имеет необходимые библиотеки и работает под управлением OS X 10.9 Mavericks. Я использую Xcode 5.1 для компиляции своей программы и считаю, что правильно связал необходимые библиотеки и предоставил необходимые пути к заголовочным файлам и т. Д. (Все работает на моем компьютере как должно).

На самом деле, полученный исполняемый файл также работает на другом компьютере под управлением OS X Mavericks, на котором также установлены необходимые библиотеки.

Проблема: я пытаюсь скомпилировать мой код, используя Xcode 5.1, чтобы создать исполняемый файл, который будет работать на компьютере под управлением OS X 10.8 (Mountain Lion) и на котором НЕ установлены обе вышеуказанные библиотеки. Я пробовал много разных вещей:

(1) Во-первых, я сохранил базовый SDK как OS X 10.9, изменил цель развертывания OS X на OS X 10.8 и успешно скомпилировал. Но когда я выполняю на третьем компьютере, который работает под управлением OS X 10.8 и не имеет ни одной из установленных библиотек, я получаю следующую ошибку:

dyld: lazy symbol binding failed: Symbol not found: ___sincos_stret
Referenced from: /Users/ec/Desktop/Auto Designer C Program Testing/Auto Designer
Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: ___sincos_stret
Referenced from: /Users/ec/Desktop/Auto Designer C Program Testing/Auto Designer
Expected in: /usr/lib/libSystem.B.dylib

Trace/BPT trap: 5

(2) Во-вторых, я попытался изменить Базовый SDK также на OS X 10.8 в XCode, сохраняя цель развертывания OS X на OS X 10.8. На этот раз я даже не смог скомпилировать свой код. Xcode дал следующие ошибки:

Undefined symbols for architecture x86_64:
"___sincos_stret", referenced from:
   _fftw_mktriggen in libfftw3.a(trig.o)
   _cexpl_sincos in libfftw3.a(trig.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Любая помощь в том, как я мог бы решить эту проблему, очень ценится. Спасибо

0 ответов

Другие вопросы по тегам