【问题标题】:Getting error "libbrotli needed" when compiling woff2编译 woff2 时出现错误“需要 libbrotli”
【发布时间】:2021-11-29 08:47:24
【问题描述】:

我尝试编译 google/woff2 3 天,但出现错误 “libbrotli needed”。我能够通过在 brotli 文件夹中运行 CMakeLists.txt 来编译 brotli 并获得 .so 文件。我是初学者,所以我不知道将两者联系在一起。我想从 woff2 文件夹中的 CMakeLists.txt 编译和添加 brotli,或者至少以某种方式为 woff2 编译 linux 构建。

谢谢

【问题讨论】:

    标签: c++ linux cmake brotli woff2


    【解决方案1】:

    您似乎需要在您的机器上编译并安装 brotli,然后才能编译google/woff2。安装过程实际上是将 .so 和头文件复制到 CMake 能够找到的系统路径上的某个位置。

    例如,您可以使用此命令将库安装到“/home/myuser/installdir”

    cmake --install . --prefix "/home/myuser/installdir"
    

    【讨论】:

    • 我可以把它们放在同一个导演上吗,Cmake可以在那里找到它们。
    • Brotli 是一个单独的库(也包含在 'woff2' 中)github.com/google/brotli/tree/… ...... 参见 README.md :默认为 make install
    • @KnudLarsen,我知道 brotli 是一个独立的库。我想和 woff2 一起构建,否则会导致架构相关的错误。
    • @KimNinh,如果我将预构建的 brotli 库放在某个地方,则会导致与架构相关的问题。
    • 我尝试将它们放在同一个文件夹中,但仍然出现错误。
    【解决方案2】:

    使用包含在可执行文件中的 libbrotli 构建 woff2

    woff2/README.md 说:

    git clone --recursive https://github.com/google/woff2.git && cd woff2/ && make clean all

    即woff2 可执行文件可以在 woff2/ 目录中构建和使用,也可以复制到任何位置。

    cd new-Folder/ 
    git clone --recursive
    https://github.com/google/woff2.git 
    cd woff2/ 
    make clean all    ## brotli libs and woff2 are built ... together
    
    ## executable: {woff2_compress, woff2_decompress, woff2_info}
    
           ## compress example
    ./woff2_compress satluj.ttf 
    Processing satluj.ttf => satluj.woff2
    Compressed 45526 to 21423.
    

    P.S.:许多“Linux 操作系统”都将 woff2(和 libbrotli)作为一个包提供,名称 = woff2woff2-tools

    【讨论】:

    • 我已经尝试过这种方法,但它不会为 android 架构编译共享库。这就是为什么我想使用 android studio(使用 android 工具链)生成它们。
    • 为什么要共享库? ......你不会被cd woff2/ && make clean all分享给
    • 你的意思是 .so 文件,我正在使用“make clean all”获取它们。
    猜你喜欢
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多