Сбой сборки при использовании методов из I / O Kit на XCode

Мне нужно выполнить некоторые операции в моем приложении C ++ после сна и пробуждения Mac OS. Мне указывают на использование I / O Kit.

Я последовал за это руководство, в частности, «Листинг 3». Не было ошибок сборки с #include директивы для IOKit,

Однако сборка завершается неудачно, когда я раскомментирую IOAllowPowerChange() или же IOCancelPowerChange():

Undefined symbols for architecture x86_64:
"_IOAllowPowerChange", referenced from:
SleepCallback(void*, unsigned int, unsigned int, void*) in MyAppFrameWork.a(PowerWatcher.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я пытался добавить IOKit.framework в «Настройки проекта»> «Фазы сборки»> «Связать двоичные файлы с библиотеками», которые ничего не изменили.

Что мне не хватает?

РЕДАКТИРОВАТЬ

Та же ошибка возникает при использовании любого метода из набора ввода / вывода, в том числе: IONotificationPortGetRunLoopSource() а также IORegisterForSystemPower(),

Нет ошибок при объявлении переменных, например, для IONotificationPortRef

0

Решение

Это действительно должно быть решено путем ссылки на IOKit.framework. Вы уверены, что добавили его к нужной цели? Вы должны ссылаться на него в конечном исполняемом файле или фреймворке. Статические библиотеки не могут ссылаться на фреймворки.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]