1

我一直在使用 stlport 开发基于 wince 的自定义操作系统,但从现在开始我正在考虑使用 windows 提供的 stl。我读到它们在功能上并没有什么不同,所以目前重要的是我的图像大小。不幸的是,我不能像首先使用 stl 并制作运行时映像然后使用 stlport,然后比较两个映像的大小那样尝试它们,因为我还有很多其他问题需要解决才能成功构建操作系统。因此,我想得到一个专家的想法:

你觉得哪一个会更轻量级?我知道 stlport 是如何连接、加载等的,但我不太确定 STL。我查看了 STL 标头,我看到的只是数以千计的内联函数。但仅此而已吗?我需要确定这一点。STL 是否链接内部的任何其他库,或者它只是包含标题并使用那些内联函数?

最好的

Ps:我正在使用VS2012并在wec2013上工作

Ps2:我知道 STL 和 stlport 代表什么以及如何使用它们来构建应用程序。我的实际问题是哪一个会消耗更少的内存,在 HDD 上使用更小的尺寸?(考虑到 stlport 是一个库,但 stl 不是等等)

4

2 回答 2

5

我假设 STL 是指编译器的标准库。这是一个常见的误解,因为 STL 是该语言提出并接受的库的原始名称,但它已经从该名称演变而来。考虑到这一点,问题就变成了:

我应该使用我的编译器提供的标准库还是使用 stlport [或其他替代方案]?

答案是这将取决于您的用例,但好的是,只要您使用标准中定义的库(即没有扩展),那么您应该能够轻松地从使用其中一个或另一个构建切换,这意味着您可以自己测试。您还可以使用不同的编译器标志测试构建。这在 VS 中特别重要,因为默认情况下库使用检查迭代器,这有利于调试,但代价是额外的内存和处理。

于 2013-11-26T21:04:39.327 回答
3

STLPort设计用于由于某些原因不提供 STL 的平台(例如,不支持 C++ 异常的嵌入式平台),或者原生 STL 支持已过时。

因此,通常您不需要替换原生 STL。在您的项目中使用 STLPort 应该有充分的理由。根据我的经验,我将它用于一些嵌入式 DSP 平台(没有原生 STL)和 UEFI 平台(不是真正的嵌入式,但也没有原生 STL,运行时也不支持 C++ 异常)。

STLPort是高度可定制的(您可以禁用异常、流等),并且可以在几乎任何具有基本 C++ 支持的平台上使用。

于 2013-11-26T21:20:19.063 回答