Я пытаюсь скомпилировать приложение C++ в xcode с помощью gcc 4.0 и 10.4u SDK.Ошибка ссылки __stack_chk_fail (с использованием libs с xcode)
Я получаю следующую ошибку компоновщика.
"_stack_chk_fail", ссылки из: _read_frame_ в libAudioDecoder.a (stream_decoder.o) _read_metadata_ в libAudioDecoder.a (stream_decoder.o) " _stack_chk_guard", ссылка из: ___ stack_chk_guard $ non_lazy_ptr в libAudioDecoder. а (stream_decoder.o) (возможно, вы имели в виду: ___ stack_chk_guard $ non_lazy_ptr) л.д.: символ (ы) не найдено
Другие темы помогают предположить, что все, что мне нужно сделать, это добавить ...
-fno-stack-protector
... в «Other C Flags», что я и сделал, но проблема сохраняется. Я выполнил очистку, перестройку и даже перезапустил XCode (потому что, как известно, иногда он путается), но проблема сохраняется.
Обратите внимание, что libAudioDecoder - это моя собственная библиотека, с которой я пытаюсь установить связь. stream_decoder.o отличается от библиотеки FLAC, к которой подключается libAudioDecoder.
По существу мой проект связан с libAudioDecoder, который связывается с libFlac, где libFlac также скомпилирован с использованием проекта xcode.
Для каждого из трех проектов xcode я использую gcc 4.0 и 10.4u SDK и имею «Другие флаги C» и «Другие флаги C++», установленные с -fno-stack-protector.
В настоящее время я все из идей, поэтому я бы очень хотел помочь в этом.
Cheers.
Все проекты, включая libAudioDecoder, используют флаг -fno-stack-protector. Я попытаюсь расширить поиск по некоторым темам, связанным с libc. Приветствия. – gmcc051
Это очень поздний ответ на мой собственный пост (я решил эту проблему некоторое время назад), но я думаю, проблема в том, что у меня все еще есть эквивалентные файлы библиотеки внутри/user/local/lib. Я думал, что давно избавился от них, но, конечно же, они были там снова, и XCode всегда, кажется, отдавал им приоритет над тем, что я явно задал в вариантах сборки. – gmcc051
Измените порядок аргументов '-L' на компоновщик, чтобы изменить приоритет. Каталоги ищут библиотеки в том порядке, в котором они перечислены, и затем обыскиваются общесистемные библиотеки. – greg