例如,我可以在macOs / XCode的DriverKit驱动中使用std::vector吗?
DriverKit有一些容器类,比如OSArray https://developer.apple.com/documentation/driverkit/osarray?language=objc
如果我创建了一个新的"DriverKit driver“项目并包含了<vector>,那么我就会得到构建错误。这些错误来自于包含<cstring>,错误是
No member named 'strcpy' in the global namespace
No member named 'strcat' in the global namespace
发布于 2020-05-15 21:27:00
据我所知,你不应该这么做。您最终拉入的头文件不是来自Xcode,它们是DriverKit编译器工具链附带的默认头文件。它们假设是一个普通的macOS构建环境,而不是dext环境。DriverKit开发工具包不包含C++标准库头文件,只包含C标准库的一个子集的一些精简头文件。因此,缺少了strcpy和strcat。
即使是DriverKit软件开发工具包中包含的版本,与libc++的链接也会失败。我不知道为什么在DriverKit开发工具包中包含该库的一个版本,但它显然不是为在dexts中使用而设计的。
可能没有什么特别的原因阻止您包含其他一些容器库,甚至直接包含STL实现的一部分。不过,您可能需要手动连接内存分配调用。
https://stackoverflow.com/questions/61797150
复制相似问题