项目简介
本项目是基于C++和CMake的CRC32C校验和计算库。CRC32C是运用iSCSI多项式的CRC校验算法,在Btrfs、ext4、Ceph和LevelDB等软件中应用广泛。项目收集多种CRC32C实现,并依据主机计算机硬件能力分派合适的实现,提供高效灵活的CRC32C计算解决方案。
项目的主要特性和功能
- 多平台支持:可在x86、ARM等不同硬件平台自动选择最优CRC32C实现。
- 多种输入类型支持:能处理原始缓冲区、
std::string
和std::string_view
等多种输入类型。 - CMake构建系统:借助CMake进行项目构建和测试,保证跨平台兼容性与易用性。
- 单元测试和基准测试:具备单元测试和基准测试功能,确保算法正确性和性能。
- Android平台支持:支持在Android平台构建和测试,适用于ARM处理器性能评估。
安装使用步骤
环境准备
- 安装CMake(建议版本3.10及以上)。
- 确保系统已安装C++编译器(如GCC或Clang)。
下载项目
bash
cd crc32c
初始化子模块
bash
git submodule update --init --recursive
构建项目
bash
mkdir build
cd build
cmake .. -DCRC32C_BUILD_TESTS=0 -DCRC32C_BUILD_BENCHMARKS=0
make
安装库
bash
sudo make install
运行测试(可选)
bash
cmake ..
cmake --build .
ctest --output-on-failure
在Android平台上构建和测试(可选)
bash
cmake .. -DCMAKE_SYSTEM_NAME=Android -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \
-DCMAKE_ANDROID_NDK=$HOME/Library/Android/sdk/ndk-bundle \
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
-DCMAKE_ANDROID_STL_TYPE=c++_static -DCRC32C_USE_GLOG=0 \
-DCMAKE_BUILD_TYPE=Release
cmake --build .
然后使用ADB工具运行测试和基准测试:
bash
adb push crc32c_bench /data/local/tmp
adb shell chmod +x /data/local/tmp/crc32c_bench
adb shell 'cd /data/local/tmp && ./crc32c_bench'
adb shell rm /data/local/tmp/crc32c_bench
通过以上步骤,可成功构建并使用本项目的CRC32C校验和计算库。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】