Проблема со связыванием основного аудио примера Тима Болстада

#core-audio

#core-audio

Вопрос:

Возможно, я упускаю что-то простое, но при попытке сборки я получаю следующую ошибку компоновщика:

     Undefined symbols for architecture i386:
      "CAStreamBasicDescription::CAStreamBasicDescription()", referenced from:
          -[AudioController initializeAUGraph] in AudioController.o
          -[AudioController .cxx_construct] in AudioController.o
      "CAStreamBasicDescription::AsString(char*, unsigned long) const", referenced from:
          CAStreamBasicDescription::PrintFormat(__sFILE*, char const*, char const*) const in AudioController.o
    ld: symbol(s) not found for architecture i386
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
  

Я не могу понять, что здесь происходит, поскольку компилятор находит CAStreamBasicDescription.все в порядке. Я видел предложения по очистке пути поиска фреймворка при обнаружении ошибок такого типа, но в этом пути ничего нет. Возможно, что-то простое, но я чувствую, что пью из пожарного шланга. Спасибо!

Комментарии:

1. Я бы не стал заходить так далеко, чтобы называть это решением, я смог обойти это и скомпилировать пример Тима, изменив его для использования AudioStreamBasicDescription вместо CAStreamBasicDescription . Помимо пары однострочных изменений, вам просто нужно дублировать функциональность SetAUCanonical .

Ответ №1:

Вы также добавили CAStreamBasicDescription.cpp в свой проект? Это часть неофициального Core Audio SDK, поэтому он недоступен, если вы не скомпилируете его самостоятельно.

Комментарии:

1. Спасибо за предложение. Я попытался заменить CAStreamBasicDescription. h с CAStreamBasicDescription.cpp (который сразу же #включает в себя CAStreamBasicDescription.h). Теперь ошибка: ld: повторяющийся символ CAStringForOSType(unsigned long, char *) и т. Д. Идеи?

2. Можете ли вы создать пример проекта, иллюстрирующий проблему? Слишком много источников ошибок компилятора, чтобы сузить круг без дополнительных данных.

3. Год спустя у меня точно такая же проблема (ну, в моей ошибке отсутствует часть, CAStreamBasicDescription но AsString бит идентичен), и CAStreamBasicDescription.cpp она определенно включена в мой проект. Пример проекта, если вы все еще хотите взглянуть: dl.dropbox.com/u/14083292/iPhoneAudio.zip

4. @yuji В дополнение к добавлению .cpp файлов в ваш проект, вам также необходимо добавить их в свою цель, чтобы они были скомпилированы. Я сделал это, и ваш проект успешно собран.

5. Ха, не знал, что я должен был это сделать. Спасибо!