2013-11-26 34 views
1

我正在使用的STLport开发基于WINCE定制OS,但是从现在开始,我想使用Windows所提供的STL。我从功能上看它们彼此没有什么不同,所以目前重要的是我的图像的大小。不幸的是,我不能给他们两个尝试像第一次使用stl,并制作一个运行时图像,然后使用stlport,然后比较两个图像的大小,因为我有很多其他问题,我需要解决,以便成功地构建OS。因此,我希望得到专家的想法:STL VS STLPort的:哪一个更轻巧

你认为哪一个会更轻便?我知道如何附加stlport,加载等,但我不太确定STL。我研究了STL头文件,所有我看到的都是成千上万的内联函数。但是,这一切?我需要确定它。 STL是否将任何其他库链接起来,还是只包含标题并使用这些内联函数?

最佳

PS:我使用VS2012和wec2013

Ps2的工作:我知道STL和STLport的代表,以及如何使用它们来构建应用程序。我真正的问题是哪一个会消耗更少的内存,在HDD上使用更小的尺寸? (综合考虑的STLport是一个lib,但STL是不是等)

回答

4

我认为通过STL你的意思是你的编译器的标准库。这是一个常见的误解,因为STL是被提出并被接受进入该语言的图书馆的原始名称,但是它已经从此演变而来。考虑到这一点,问题就变成:

我应该使用带有我的编译器或使用的STLport [或其他替代品]标准库?

的答案是,这取决于你的使用情况,但好处是,只要你使用的库中的标准定义(即没有扩展名),那么你应该能够很容易地从切换与其中一个建立关系,这意味着您可以自己测试。您也可以使用不同的编译器标志来测试构建。这在VS中特别重要,因为默认情况下该库使用检查迭代器,这对于调试很有好处,但需要额外的内存和处理。

+0

是由STL我在谈论我的编译器的标准库,这就是为什么我加了注释有关我的Visual Studio版本。我尝试了这两种方法,并没有因STL造成任何建筑问题。我对STL和stlports的足迹更感兴趣。哪一个会使用更少的内存,这实际上是我的主要问题。 – Xentius

+0

@Xentius在这种意义上停止使用STL可能是一个好主意,因为它是一个单独的库,现在已经放弃了。微软从未发布STL。 – Potatoswatter

+1

@ Xentius:正如我在答案中所提到的,除了措施之外,没有明确的答案。我预计默认情况下,VS的内存和CPU需求会更高(检查迭代器),但是如果你禁用这些,我不会以这种或那种方式下注。 –

1

STLPort旨在用于因某些原因(例如,没有C++异常支持的嵌入式平台)不提供STL的平台,或者本机STL支持已过时。

所以,平时你不需要更换原生STL。在项目中使用STLPort应该有充分的理由。根据我的经验,我将它用于某些嵌入式DSP平台(无本机STL),并用于UEFI平台(不是真正的嵌入式,也不是本机STL,运行时也不支持C++异常)。

STLPort是高度可定制(您可以禁用例外,溪流等),并可以在基本的C++支持几乎所有平台上使用。