[英]Build fails when using methods from I/O Kit on XCode
睡眠和唤醒Mac OS时,我需要在C ++应用程序中执行一些操作。 我指的是使用I / O套件。
我遵循了本指南 ,特别是“清单3”。 IOKit
的#include
指令未发生构建错误。
但是,当我取消注释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
,但未做任何更改。
我想念什么?
编辑
使用I / O Kit中的任何方法时,都会发生相同的错误,包括: IONotificationPortGetRunLoopSource()
和IORegisterForSystemPower()
。
声明变量时没有错误,例如IONotificationPortRef
确实应该通过链接IOKit.framework来解决。 您确定将其添加到正确的目标吗? 您需要在最终的可执行文件或框架中链接它。 静态库无法链接到框架。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.