Я модернізував CUPS з 2.0.0 до 2.0.2 на OS X 10.10.4 Yosemite з міркувань безпеки за порадою сканування Nessus. Я вчинив кардинальний гріх - не створив резервну копію своєї ОС перед тим, як внести цю зміну. На жаль, у багатьох додатках x86 у моїй системі зараз з’являється ця фатальна помилка:
Тип винятку: EXC_BREAKPOINT (SIGTRAP) Коди виключень:
0x0000000000000002, 0x0000000000000000Інформація про програму: dyld: запуск, завантаження залежних бібліотек
Повідомлення про помилку дилда: Бібліотека не завантажена: /usr/lib/libcups.2.dylib
Посилання з: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore Причина: ні знайдено відповідне зображення Знайшли: /usr/lib/libcups.2.dylib: mach-o, але неправильна архітектура /usr/lib/libcups.2.dylib: mach-o, але неправильна архітектура
Досить справедливо. Тому я вирішив запустити lipo -info у бібліотеці, де вона впливає, і в ній зазначено, що її архітектура - x86_64 ("Нежирний файл: /usr/lib/libcups.2.dylib - це архітектура: x86_64"). Я зробив висновок, що джерело CUPS потребував прапорців x86 (i386) після конфігурації після невеликих досліджень з цього питання. Отже, коли я запустив нову команду настройки:
sudo ./configure CFLAGS="-arch i386 -arch x86_64" CXXFLAGS="-arch i386 -arch x86_64" LDFLAGS="-arch i386 -arch x86_64"
Що було все добре і денді, але це було виконано з помилками. Я все-таки продовжував свою команду make і make install встановлювати добросовісно, але виявив, що зараз постраждалі програми або взагалі не ініціюють, або все ще повертають фатальні помилки. Що я тут роблю неправильно? Я завантажив джерело безпосередньо з CUPS.org, якщо хтось цікавиться.