簡體   English   中英

如何使用Boost序列化?

[英]How to use boost serialization?

我是編程方面的業余愛好者。 我想知道如何僅使用boost的序列化( https://www.boost.org/doc/libs/1_36_0/libs/serialization/doc/index.html )。

當我下載boost時,它有很多庫並且是一個大文件夾,但是我只想使用序列化庫。 我的用戶是否需要安裝所有boost才能讓我使用序列化?

我是一個完整的初學者,因此,如果您能告訴我將序列化導入我的項目所需執行的每個步驟,將不勝感激。 例如,是否必須靜態鏈接庫? 我不知道。 謝謝您的幫助。

編輯:我希望我的用戶不必處理太多。 那么,有沒有一種方法可以在沒有用戶安裝任何東西的情況下使用boost? 謝謝。

通常,您需要在運行時鏈接與“動態庫”(.dll)相匹配的“鏈接庫”(傳統上是Windows上的.lib文件)。 當然,在運行時它必須存在,因此您需要“安裝”它(以兼容的形式出現在目標計算機上,以匹配OS和體系結構)。

好消息:

  1. MSVC將為該庫執行“自動鏈接”( https://www.boost.org/doc/libs/1_68_0/more/getting_started/windows.html#auto-linking
  2. 如果您在與目標平台相似的平台上構建,則默認目標通常會與目標兼容

請注意,您可能需要間接要求(例如Boost System)。

確實,您可以XCOPY部署與exe文件位於同一文件夾中的庫,但這並不是真正的通用方法,如果您經驗不足,則不是最佳方法。

如果您可以使用(免費的)安裝程序生成器(快速的Google會找到類似https://www.techrepublic.com/blog/five-apps/five-apps-for-creating-installation-packages/的內容 )您將享受了解所涉及復雜性的工具的指導。

我的用戶是否需要安裝所有boost才能讓我使用序列化?

當您將boost,MSVC ++和MFC運行時靜態鏈接到您的應用程序時,您將獲得一個包含所有依賴項的單個可執行文件。 然后,您的用戶所需要做的就是雙擊應用程序的.exe文件。

從頭開始構建boost庫可能很棘手,因此對於入門而言,我建議下載預構建的二進制文件 確保下載與您的Visual C ++版本和所構建應用程序的位數(32/64)都完全匹配的軟件包。 盡管從長遠來看,構建增強自己可能會有所幫助,所以您不必依賴最新版本VC ++的預構建二進制文件。

確保將.lib文件的目錄路徑添加到項目的庫路徑中。 您不需要指定單個.lib文件,因為boost使用自動鏈接 如果您需要知道,靜態lib文件的文件名中將包含“ mt-s”(例如,對於32位發行版,則包括“ libboost_serialization-vc141-mt-s-x32-1_68.lib”,而“ libboost_serialization-vc141” -mt-sgd-x32-1_68.lib”(用於32位調試版本)。

在項目設置中,請確保選擇MFC靜態庫(“常規”類別>“使用MFC”)。 另外,根據您的項目配置(C / C ++類別),還選擇“運行時庫”>“多線程”(/ MT)或“多線程調試”(/ MTd)。 如果不這樣做,則鏈接將失敗,或者您將鏈接到boost DLL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM