尝试在ubuntu 16.04上安装libsodium-php时未声明的标识符

时间:2017-07-15 17:53:14

标签: libsodium

我在Ubuntu 16.04上为libsodium安装php包装器时遇到了一些麻烦。我使用sudo apt-get install libsodium安装了libsodium但是当我运行sudo pecl install libsodium时,我收到了未声明的标识符错误。

    running: make
    /bin/bash /tmp/pear/temp/pear-build-root1K2CoA/libsodium-2.0.1/libtool --mode=compile cc  -I. -I/tmp/pear/temp/libsodium -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-root1K2CoA/libsodium-2.0.1/include -I/tmp/pear/temp/pear-build-root1K2CoA/libsodium-2.0.1/main -I/tmp/pear/temp/libsodium -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -c /tmp/pear/temp/libsodium/libsodium.c -o libsodium.lo
    libtool: compile:  cc -I. -I/tmp/pear/temp/libsodium -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-root1K2CoA/libsodium-2.0.1/include -I/tmp/pear/temp/pear-build-root1K2CoA/libsodium-2.0.1/main -I/tmp/pear/temp/libsodium -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/libsodium/libsodium.c  -fPIC -DPIC -o .libs/libsodium.o
    /tmp/pear/temp/libsodium/libsodium.c: In function ‘zif_sodium_crypto_kdf_derive_from_key’:
    /tmp/pear/temp/libsodium/libsodium.c:2899:29: error: ‘crypto_kdf_blake2b_CONTEXTBYTES’ undeclared (first use in this function)
         memcpy(ctx_padded, ctx, crypto_kdf_blake2b_CONTEXTBYTES);
                                 ^
    /tmp/pear/temp/libsodium/libsodium.c:2899:29: note: each undeclared identifier is reported only once for each function it appears in
    Makefile:194: recipe for target 'libsodium.lo' failed
    make: *** [libsodium.lo] Error 1
    ERROR: `make' failed

1 个答案:

答案 0 :(得分:1)

看起来apt-get并没有安装最新版本的libsodium。下载并编译最新版本后,我能够安装php扩展。