ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何用 getdeps.py 首次构建 Folly 静态库并运行测试验证

如何用 getdeps.py 首次构建 Folly 静态库并运行测试验证 如何用 getdeps.py 首次构建 Folly 静态库并运行测试验证【免费下载链接】follyAn open-source C library developed and used at Facebook.项目地址: https://gitcode.com/GitHub_Trending/fol/folly第一次用 folly 仓库自带的 getdeps.py 脚本通常要完成两件事把 folly 及其全部依赖构建出来得到一个静态库libfolly.a然后运行 folly 自带的单元测试确认构建结果可用。folly 不保证提交之间的 ABI 兼容性因此官方建议将其构建成静态库使用getdeps.py会先下载并构建所有依赖再调用 cmake 构建 folly 本体适合在 Linux、macOS 和 Windows 上做首次构建。开始前需要保证 Python 3.6 或更高版本在 PATH 中脚本是用 Python 写的。准备条件已把 folly 仓库克隆到本地后续所有命令都在仓库根目录执行即build/fbcode_builder/getdeps.py可见的位置。PATH 中可用的python33.6。构建所需依赖由 folly 的 getdeps manifest 描述见 build/fbcode_builder/manifests/follygflags、glog、googletest、boost、libevent、libsodium、fast_float、fmt、lz4、openssl、snappy、zstd 等Linux 下另有 libaio、libiberty、libunwindWindows 下额外提供 zlib。其中 boost 是带 C14 支持编译的版本googletest 用于构建和运行 folly 的测试。可选先安装系统依赖在 Linux或安装了 homebrew 的 macOS 上可以先用系统包管理器安装部分依赖省去逐个构建的时间。该命令会调用系统包管理器实际安装软件包需要 root 权限命令中的sudo执行前先用--dry-run查看将要安装的包# 先查看将要安装的包不实际执行 ./build/fbcode_builder/getdeps.py install-system-deps --dry-run --recursive # 确认无误后再实际安装需要 sudo 权限 sudo ./build/fbcode_builder/getdeps.py install-system-deps --recursive其他平台或 Linux 上不想装系统依赖时也可以跳过这一步getdeps.py会在构建阶段自行下载并构建这些依赖。构建 folly 静态库在仓库根目录执行python3 ./build/fbcode_builder/getdeps.py --allow-system-packages build这条命令会让getdeps.py先下载并构建全部依赖再调用 cmake 构建 folly 本体--allow-system-packages表示允许使用系统上已安装的依赖版本对应上面的系统依赖安装步骤是否可用取决于你本地已装了什么。构建输出位于 scratch 区域静态库产物是installed/folly/lib/libfolly.a默认情况下 manifest 设置了BUILD_SHARED_LIBSOFF所以产物就是静态库libfolly.a如果确实要构建共享库可以按需编辑 manifestfolly 的 cmake 构建配置就保存在这个文件中README 明确说可以按需本地修改。控制安装位置的几个可选参数--scratch-path指定构建用的 scratch 目录位置--install-dir、--install-prefix更细粒度地控制安装目录。由于 folly 在提交之间不提供兼容保证官方建议把 folly 安装到临时位置然后让项目构建指向这个临时位置而不是安装进系统目录。默认的 scratch 安装位置可以在构建日志中找到也可以用下面的命令查看python3 ./build/fbcode_builder/getdeps.py show-inst-dirLinux 和 macOS 上也可以用仓库根目录的 build.sh 作为替代入口Windows 用 build.bat它只是getdeps.py build folly的简单封装需要更多控制权时建议直接调用getdeps.py。运行测试验证默认情况下getdeps.py build会同时构建 folly 的测试。构建完成后运行python3 ./build/fbcode_builder/getdeps.py --allow-system-packages test这条命令会执行 folly 的单元测试manifest 中teston时设置BUILD_TESTSON、BUILD_BENCHMARKSOFF。如果想用 ctest 的方式逐条看测试结果可以先定位 scratch 构建目录再执行 ctestpython3 ./build/fbcode_builder/getdeps.py show-build-dir # 进入上面打印出的构建目录后 cd show-build-dir 打印的目录 ctest构建时如果后续还要迭代 cmakescratch 构建目录里会生成一个run_cmake.py脚本供再次调用 cmake目录同样可以用show-build-dir找到。构建产物如何用于自己的项目构建完成后folly 位于 scratch 安装目录中。如果你的项目用 CMake 构建可以设置CMAKE_PREFIX_PATH指向这个临时安装目录让 CMake 在构建你的项目时找到 folly。folly 采用folly/folly的目录结构头文件按#include folly/FBString.h这样的方式引入。边界与说明getdeps.py支持 Linux、macOS 和 WindowsCMake 构建主要保证在 macOS 和最新 Ubuntu LTS或更新的 Linux上得到测试其他发行版如果系统包集合不对可以在依赖 manifest 中按发行版版本加 override。Windows 上getdeps.py构建可用且经过 CI 测试但很多测试在 Windows 构建中是禁用的可在 cmake 配置日志中看到或在CMakeLists.txt里搜索WINDOWS_DISABLED。各依赖的具体构建配置如 boost、openssl分别描述在 build/fbcode_builder/manifests 下各自的 manifest 文件中fbcode_builder目录本身的作用与 manifest 机制的说明见 build/fbcode_builder/README.md。【免费下载链接】follyAn open-source C library developed and used at Facebook.项目地址: https://gitcode.com/GitHub_Trending/fol/folly创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表