簡體   English   中英

如何在 MacOS 上構建和鏈接 Boost.Serialization

[英]How to build and link Boost.Serialization on MacOS

我正在使用 Boost 在 C++ 中構建客戶端-服務器應用程序,我的一位同事正在 Ubuntu 中對服務器進行編碼,他正在使用 Boost.Serialization 但我無法運行它,因為它找不到該庫,此外我還需要客戶端的庫。 為了構建並將其鏈接到項目,他只創建了一個 CMAKE 文件,如下所示:

cmake_minimum_required(VERSION 3.16)
project(RemoteBackup_Server)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS "-pthread" )

add_executable(RemoteBackup_Server User.cpp main.cpp server.cpp server.h connection_handler.cpp connection_handler.h)


find_package(Boost REQUIRED COMPONENTS serialization filesystem)
include_directories(${Boost_INCLUDE_DIRS})
target_link_libraries(RemoteBackup_Server ${Boost_LIBRARIES})

它毫不費力地編譯和鏈接庫。 我正在使用 MacOS,我已經使用 Homebrew 安裝了 Boost,並且我嘗試按照 Boost 官方網站中的指南進行操作: https://www.boost.org/doc/libs/1_74_0/more/getting_started/unix- variables.html#prepare-to-use-a-boost-library-binary但我沒有bootstrap.shb2 (指南中提到的命令)來構建庫,我在互聯網上到處搜索,仍然不知道如何進行。 有什么幫助嗎?

不幸的是,Homebrew 似乎只安裝了 Boost 的 header 庫。 對我來說,安裝所有內容的最簡單方法是從他們的網站下載完整的 Boost 存檔,然后按照此處的說明進行操作https://www.boost.org/doc/libs/1_74_0/more/getting_started/unix-variants.html #prepare-to-use-a-boost-library-binary然后將它們鏈接到 CMAKE 文件中,如下所示:

set(Boost_INCLUDE_DIR prefix/include)
set(Boost_LIBRARY_DIR prefix/lib)
find_package(Boost COMPONENTS libraries_needed REQUIRED)
include_directories(${Boost_INCLUDE_DIR})
link_directories(${Boost_LIBRARY_DIR})
target_link_libraries(Project_Name ${Boost_LIBRARIES})

其中: prefix是您在使用./bootstrap.sh時使用--prefix標志指定的安裝路徑, libraries_needed是您需要用空格分隔的庫列表,例如filesystem serializationProject_Name是您的項目,在 CMAKE 文件的project()命令中指定。

暫無
暫無

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

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