I/O キットを使用しようとしていますが、I/O キットに正しくリンクしています。
I/O キットで関数を使用し、それを静的関数内で呼び出さないと、次のエラーが発生しますUndefined symbols for architecture 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)