2013-11-26 33 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++支持幾乎所有平臺上使用。