如何在 MacOS 上构建和 link Boost.Serialization
How to build and link Boost.Serialization on MacOS
我正在使用 Boost 在 C++ 中构建一个客户端-服务器应用程序,我的一位同事正在用 Ubuntu 编写服务器代码,他正在使用 Boost.Serialization 但我无法 运行 因为它没有找到那个库,此外我还需要客户端的库。为了将其构建并 link 到项目中,他只创建了一个 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})
它可以毫不费力地编译和 links 库。
我正在使用 MacOS,我已经使用 Homebrew 安装了 Boost,并且我尝试按照 Boost 官方网站中的指南进行操作:https://www.boost.org/doc/libs/1_74_0/more/getting_started/unix-variants.html#prepare-to-use-a-boost-library-binary
但我没有 bootstrap.sh
和 b2
(指南中提到的命令)来构建库,我在互联网上到处搜索,但仍然不知道如何继续。有帮助吗?
不幸的是,Homebrew 似乎只安装了 Boost 的头库。对我来说,安装所有内容的最简单方法是从他们的网站下载完整的 Boost 存档,然后按照此处 https://www.boost.org/doc/libs/1_74_0/more/getting_started/unix-variants.html#prepare-to-use-a-boost-library-binary 的说明进行操作,然后 link 在 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 是您需要的库列表,用 space 分隔,例如 filesystem serialization
,
Project_Name是你的工程名,在CMAKE文件中的project()
命令中指定。
我正在使用 Boost 在 C++ 中构建一个客户端-服务器应用程序,我的一位同事正在用 Ubuntu 编写服务器代码,他正在使用 Boost.Serialization 但我无法 运行 因为它没有找到那个库,此外我还需要客户端的库。为了将其构建并 link 到项目中,他只创建了一个 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})
它可以毫不费力地编译和 links 库。
我正在使用 MacOS,我已经使用 Homebrew 安装了 Boost,并且我尝试按照 Boost 官方网站中的指南进行操作:https://www.boost.org/doc/libs/1_74_0/more/getting_started/unix-variants.html#prepare-to-use-a-boost-library-binary
但我没有 bootstrap.sh
和 b2
(指南中提到的命令)来构建库,我在互联网上到处搜索,但仍然不知道如何继续。有帮助吗?
不幸的是,Homebrew 似乎只安装了 Boost 的头库。对我来说,安装所有内容的最简单方法是从他们的网站下载完整的 Boost 存档,然后按照此处 https://www.boost.org/doc/libs/1_74_0/more/getting_started/unix-variants.html#prepare-to-use-a-boost-library-binary 的说明进行操作,然后 link 在 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 是您需要的库列表,用 space 分隔,例如 filesystem serialization
,
Project_Name是你的工程名,在CMAKE文件中的project()
命令中指定。