Próbuję użyć zestawu I/O i poprawnie podłączyć do zestawu I/O.Dlaczego funkcje statyczne eliminują niezdefiniowane symbole w Xcode?
Gdy korzystam z funkcji zestawu I/O i nie wywołuję jej w ramach funkcji statycznej, pojawia się następujący błąd: Undefined symbols for architecture x86_64
.
Oto przykład do tłumienia błędu
static void test(void)
{
if (IORegisterForSystemPower(...))
{
}
}
Oto przykład, który spowoduje błąd.
void test(void)
{
if (IORegisterForSystemPower(...))
{
}
}
Jakieś sugestie, dlaczego tak się dzieje?
EDIT:
Oto dokładne komunikaty o błędach:
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)
Czy możesz wkleić pełną listę komunikatów o błędach? Na przykład czy narzeka na symbol IORegisterForSystemPower? – jman
Dodałem komunikaty o błędach. Zobacz powyżej. – David