STL - 我可以在 DriverKit 驱动程序中使用 STL 吗?

标签 stl macos-catalina xcode11.4 driverkit macos-system-extension

我可以使用例如std::vector吗?在 macOs/XCode 的 DriverKit 驱动程序中?

DriverKit 有一些容器类,如 OSArray https://developer.apple.com/documentation/driverkit/osarray?language=objc

如果我创建一个新的“DriverKit 驱动程序”项目并包含 <vector>然后我得到构建错误。这些错误来自包括 <cstring>错误是

No member named 'strcpy' in the global namespace

No member named 'strcat' in the global namespace

最佳答案

据我所知,你不应该这样做。您最终引入的 header 并非来自 DriverKit SDK,它们是 Xcode 编译器工具链附带的默认 header 。他们假设一个正常的 macOS 构建环境,而不是 dext 环境。 DriverKit SDK 不包含 C++ stdlib header ,仅包含一些用于 C 标准库子集的精简 header 。因此缺少 strcpystrcat

针对 libc++ 的链接也失败了,即使是包含在 DriverKit SDK 中的版本也是如此。我不知道为什么 DriverKit SDK 中包含该库的一个版本,但它显然不适合在 dexts 中使用。

大概没有什么特别阻止您包含其他容器库,甚至直接包含 STL 实现的部分内容。不过,您可能需要手动连接内存分配调用。

关于STL - 我可以在 DriverKit 驱动程序中使用 STL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61797150/

相关文章:

c# - 注册 c# .net core 控制台应用程序以在 macOS 上的系统启动时启动

c++ - pIter != cont.end() 在 for 循环中的表现

c++ - 有没有办法为 std::map 中小于给定键的第一个元素找到反向迭代器?

c++ - 如何使用带有函数指针的仿函数包装的STL?

javascript - macOS Catalina 上的 Safari - 开发人员工具中缺少 "Debugger"选项卡?

xcode - 如果@EnvironmentObject,如何创建通用?

c++ - C++中map []和map.at之间的区别?

ios - Xcode 无法在运行 iOS 13 的真实 iOS 设备上构建

ios - Xcode 版本 11.4.1 (11E503a) 在 Source Control > Create Git Repositories 上挂起

c++ - 运行合并排序递归算法时出现 EXC_BAD_ACCESS 错误