Прогоны программы OS X на dev машине, отказывая ужасно на других

У меня есть OS X 10,6 Mac, которые я использую в качестве своей dev машины. Программа я записал работы отлично над dev машиной. Однако, когда я пытался выполнить его на OS X 10.5 (не уверенный, если это релевантно), тестовая машина, это отказывает на запуске.

Это - ошибка, которую я получаю:

Process:         MyApp[25908]
Path:            /Applications/MyApp.app/Contents/MacOS/MyApp
Identifier:      MyApp
Version:         ??? (???)
Code Type:       X86 (Native)
Parent Process:  launchd [109]

Interval Since Last Report:          17392106 sec
Crashes Since Last Report:           735
Per-App Interval Since Last Report:  0 sec
Per-App Crashes Since Last Report:   8

Date/Time:       2010-08-14 07:50:09.768 -0700
OS Version:      Mac OS X 10.5.8 (9L31a)
Report Version:  6
Anonymous UUID:  1BF30470-ACF2-46C7-B6D5-4514380965C8

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Crashed Thread:  0

Dyld Error Message:
  Symbol not found: __ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_i
  Referenced from: /Applications/MyApp.app/Contents/MacOS/MyApp
  Expected in: /usr/lib/libstdc++.6.dylib

Таким образом, похоже, что это отказывает, потому что это загружает несовместимую версию динамической библиотеки libstdc ++. 6. Действительно ли этот тип вещи является обыкновенным? Поиск на Google действительно не показывает много других программ, которые имеют эту проблему. Что я должен делать в своей компиляции для предотвращения этого? Я должен так или иначе включать libstdc ++ в моем комплекте приложений?

8
задан Nantucket 14 August 2010 в 15:46
поделиться

1 ответ

Я могу вспомнить несколько моментов:

  1. Вы скомпилировали его как «сборку релиза»? Отладочная сборка может не работать на машинах, кроме той, на которой она скомпилирована.

  2. Какой SDK вы использовали? Какую минимальную версию ОС вы указали в настройках сборки? Если вы хотите запустить его на 10.5, вам необходимо использовать 10.5 SDK и / или установить для целевой ОС значение 10.5. См. этот документ Apple о сборке для нескольких версий ОС.

  3. Установлено ли на целевой машине DYLD_LIBRARY_PATH что-то непустое? Если не сделать это аккуратно, это может сбить с толку dyld .

Один из способов различить различные возможности - запустить приложение на машине разработчика, но с отдельной учетной записью без прав администратора от учетной записи разработчика; затем вы можете проверить, работает ли он в коробке 10.6.

2
ответ дан 5 December 2019 в 15:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: