当前位置: 首页 > 科技观察

闻起来真香!Facebook官方开源的C++11组件库

时间:2023-03-21 23:57:43 科技观察

今天源妹给大家推荐一个Facebook开源的C++11组件库——Folly,Folly包含了Facebook广泛使用的各种核心库组件。Folly是Facebook开源库的首字母缩写,它提供类似于Boost和std库的功能。包括hash、string、vector、内存分配、位处理等,满足大规模高性能需求。项目地址:https://github.com/facebook/folly逻辑设计Folly是一组相对独立的组件,有的简单到几个符号。对内部依赖没有限制,这意味着给定的folly模块可以使用任何其他folly组件。所有符号都在顶级命名空间中定义,当然除了宏。宏名称为ALL_UPPERCASE,应以FOLLY_开头。名称空间folly定义了其他内部名称空间,例如internal或detail。用户代码不应依赖于这些命名空间中的符号。Folly也有一个实验目录。该名称主要暗示我们相信API可能会随着时间的推移发生重大变化。总的来说,这段代码仍然被大量使用和测试。Folly安装和下载folly支持gcc(5.1+)、clang或MSVC。它支持在Linux(x86-32、x86-64和ARM)、iOS、macOS和Windows(x86-64)上运行。可以使用以下命令下载安装:wgethttps://github.com/google/googletest/archive/release-1.8.0.tar.gz&&\tarzxfrelease-1.8.0.tar.gz&&\rm-freelease-1.8.0。tar.gz&&\cdgoogletest-release-1.8.0&&\cmake.&&\make&&\makeinstallbuild-test默认情况下,build-test作为CMakeall目标的一部分被禁用。要构建测试,请在配置时为CMake指定-DBUILD_TESTS=ON。Ubuntu16.04LTS需要以下包(随意剪切和粘贴下面的apt-get命令):sudoapt-getinstall\g++\cmake\libboost-all-dev\libevent-dev\libdouble-conversion-dev\libgoogle-glog-dev\libgflags-dev\libiberty-dev\liblz4-dev\liblzma-dev\libsnappy-dev\make\zlib1g-dev\binutils-dev\libjemalloc-dev\libssl-dev\pkg-config\libunwind-devFolly依赖项需要来自源码安装fmt。以下命令将下载、编译和安装fmt。gitclonehttps://github.com/fmtlib/fmt.git&&cdfmtmkdir_build&&cd_buildcmake..make-j$(nproc)sudomakeinstall如果需要高级调试功能,请使用:sudoapt-getinstall\libunwind8-dev\libelf-dev\libdwarf-devfolly目录(比如checkout根目录或者archive解压根目录),运行:mkdir_build&&cd_buildcmake..make-j$(nproc)makeinstall#withithersudoorDESTDIRasnecessary目前Folly在Github上已经标记了17.6K星,累计分支4K(Github地址:https://github.com/facebook/folly)阅读Folly的代码对C++程序员的成长也很有帮助。我希望你会喜欢这个项目。

猜你喜欢