Я пытаюсь использовать набор ввода-вывода и связался с вводом-выводом. О комплект правильно.
Когда я использую функцию в наборе ввода-вывода и не вызываю ее в статической функции, я получаю следующую ошибку: Неопределенные символы для архитектуры x86_64
.
Вот пример подавления ошибки
static void test(void)
{
if (IORegisterForSystemPower(...))
{
}
}
Вот пример, который вызовет ошибку.
void test(void)
{
if (IORegisterForSystemPower(...))
{
}
}
Есть предложения, почему это происходит?
РЕДАКТИРОВАТЬ:
Вот точные сообщения об ошибках:
Undefined symbols for architecture x86_64:
"_IORegisterForSystemPower", referenced from:
_registerNotificaitonUsingIOKit in AppDelegate.o
"_IONotificationPortGetRunLoopSource", referenced from:
_registerNotificaitonUsingIOKit in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)