Неопределенные символы при использовании уровня оптимизации -Onone в Xcode 16IOS

Программируем под IOS
Ответить
Anonymous
 Неопределенные символы при использовании уровня оптимизации -Onone в Xcode 16

Сообщение Anonymous »

Я сталкиваюсь с ошибкой компоновщика при сборке проекта с параметром «Без оптимизации» (-Onone) в Xcode 16. Проект компилируется и работает нормально с параметром «Оптимизировать для скорости» (-O), но когда я переключаюсь на -Onone в целях отладки я получаю следующие ошибки:

Код: Выделить всё

Undefined symbols for architecture arm64:
"_allphone_search_init", referenced from:
_ps_set_allphone_file in libvoice.a[arm64][33](pocketsphinx.o)
_ps_set_allphone in libvoice.a[arm64][33](pocketsphinx.o)
"_iconv", referenced from:
_ngram_model_recode in libvoice.a[arm64][60](ngram_model.o)
_ngram_model_recode in libvoice.a[arm64][60](ngram_model.o)
_ngram_model_recode in libvoice.a[arm64][60](ngram_model.o)
_ngram_model_recode in libvoice.a[arm64][60](ngram_model.o)
"_iconv_close", referenced from:
_ngram_model_recode in libvoice.a[arm64][60](ngram_model.o)
"_iconv_open", referenced from:
_ngram_model_recode in libvoice.a[arm64][60](ngram_model.o)
"_jsgf_build_fsg", referenced from:
_ps_set_jsgf_file in libvoice.a[arm64][33](pocketsphinx.o)
"_jsgf_get_rule", referenced from:
_ps_set_jsgf_file in libvoice.a[arm64][33](pocketsphinx.o)
"_jsgf_parse_file", referenced from:
_ps_set_jsgf_file in libvoice.a[arm64][33](pocketsphinx.o)
"_jsgf_rule_iter", referenced from:
_ps_set_jsgf_file in libvoice.a[arm64][33](pocketsphinx.o)
"_jsgf_rule_public", referenced from:
_ps_set_jsgf_file in libvoice.a[arm64][33](pocketsphinx.o)
"_ngram_model_arpa_read", referenced from:
_ngram_model_read in libvoice.a[arm64][60](ngram_model.o)
_ngram_model_read in libvoice.a[arm64][60](ngram_model.o)
"_ngram_model_arpa_write", referenced from:
_ngram_model_write in libvoice.a[arm64][60](ngram_model.o)
"_ngram_model_dmp_read", referenced from:
_ngram_model_read in libvoice.a[arm64][60](ngram_model.o)
_ngram_model_read in libvoice.a[arm64][60](ngram_model.o)
"_ngram_model_dmp_write", referenced from:
_ngram_model_write in libvoice.a[arm64][60](ngram_model.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Неопределенные символы относятся к старому файлу .a (написанному на C++), который уже много лет включен в мой проект без каких-либо проблем. Файл .a статически связывается на этапе «Связывание двоичного файла с библиотеками» в настройках проекта. Эта проблема начала проявляться после обновления до Xcode 16. Раньше оба уровня оптимизации (-O и -Onone) работали нормально.
Хотя я могу компилировать с включенной оптимизацией, мне часто требуется -Onone для в целях отладки для правильной проверки значений переменных. Буду признателен за любую информацию о том, почему возникает эта проблема и как ее решить.
Что я пробовал:
Очистил папку сборки. и удалил производные данные.
Проверил путь к файлу .a в разделе «Пути поиска в библиотеке».
Проверил, что файл .a правильно связан в настройках проекта.
Изображение


Подробнее здесь: https://stackoverflow.com/questions/792 ... n-xcode-16
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»