Почему статические функции исключают неопределенные символы в Xcode?

Я пытаюсь использовать набор ввода-вывода и связался с вводом-выводом. О комплект правильно.

Когда я использую функцию в наборе ввода-вывода и не вызываю ее в статической функции, я получаю следующую ошибку: Неопределенные символы для архитектуры 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)
7
задан David 7 October 2011 в 12:22
поделиться