ERROR: openssl not found during FFmpeg ./configure

5,772
$ git clone https://github.com/FFmpeg/FFmpeg.git
$ cd FFmpeg

$ ./configure --help | egrep -i '(ssl|tls)'
                           if openssl, librtmp or gmp is not used [no]
                           if openssl or librtmp is not used [no]
  --enable-gnutls          enable gnutls, needed for https support
                           if openssl is not used [no]
  --enable-openssl         enable openssl, needed for https support
                           if gnutls is not used [no]
  --disable-schannel       disable SChannel SSP, needed for TLS support on
                           Windows if openssl and gnutls are not used [autodetect]
  --disable-securetransport disable Secure Transport, needed for TLS support
                           on OSX if openssl and gnutls are not used [autodetect]

So it looks like you enable with --enable-openssl, but you add headers and libraries the old fashioned way:

$ export CFLAGS="-I/usr/local/ssl/include -L/usr/local/ssl/lib -Wl,-rpath=/usr/local/ssl/lib"
$ CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" ./configure --enable-openssl
...

configure should complete with openssl listed as an external library:

install prefix            /usr/local
source path               .
C compiler                gcc
C library                 
ARCH                      x86 (generic)
big-endian                no
runtime cpu detection     yes
nasm                      yes
...
SSE enabled               yes
SSSE3 enabled             yes
AESNI enabled             yes
AVX enabled               yes
XOP enabled               yes
...
makeinfo enabled          yes
makeinfo supports HTML    no

Enabled programs:
ffmpeg             ffprobe            ffserver

External libraries:
bzlib              libxcb_shape           openssl
iconv              libxcb_shm             videotoolbox
libxcb             libxcb_xfixes          zlib
...

And if you inspect config.log, then you will see similar to:

check_func_headers openssl/ssl.h SSL_library_init -I/opt/local/include -L/opt/local/lib -lssl -lcrypto
check_ld cc -I/opt/local/include -L/opt/local/lib -lssl -lcrypto
check_cc -I/opt/local/include -L/opt/local/lib
BEGIN /var/folders/mk/y7lk0xrx72lcn_2q3d12jcch0000gn/T//ffconf.FRvR3v3L.c
    1   #include <openssl/ssl.h>
    2   long check_SSL_library_init(void) { return (long) SSL_library_init; }
    3   int main(void) { return 0; }

The SSL_library_init tells me FFmpeg can only be used with OpenSSL 1.0.2 and below. Other tests should be used for OpenSSL 1.1.0 and above. Also see Compilation and Installation | Autoconf on the OpenSSL wiki.

Share:
5,772

Related videos on Youtube

bot1131357
Author by

bot1131357

Updated on September 18, 2022

Comments

  • bot1131357
    bot1131357 almost 2 years

    I am trying to build my FFmpeg library on Ubuntu with the following dependencies:

    • libogg ( /home/reccsi/Dev/build-x64/libogg )
    • libvorbis( /home/reccsi/Dev/build-x64/libvorbis )
    • libvpx( /home/reccsi/Dev/build-x64/libvpx )
    • libopenssl( /home/reccsi/Dev/build-x64/libopenssl )

    I have build them all successfully and added the pkg-config files into /usr/share/pkgconfig

    However, when I configure FFmpeg I get this:

    $ ./configure  --prefix=/home/reccsi/Dev/build-x64/ffmpeg/  --pkg-config-flags="--static" --enable-shared --enable-libvpx --enable-libvorbis --enable-openssl --enable-pic --enable-debug
    ERROR: openssl not found
    
    If you think configure made a mistake, make sure you are using the latest
    version from Git.  If the latest version fails, report the problem to the
    [email protected] mailing list or IRC #ffmpeg on irc.freenode.net.
    Include the log file "config.log" produced by configure as this will help
    solve the problem.
    $
    

    I thought that was odd, so I looked into config.log and found this:

    (...lots of text)
    BEGIN /tmp/ffconf.2Hr4i7dx.c
        1   #include <vpx/vpx_encoder.h>
        2   #include <vpx/vp8cx.h>
        3   long check_vpx_codec_vp8_cx(void) { return (long) vpx_codec_vp8_cx; }
        4   int main(void) { return 0; }
    END /tmp/ffconf.2Hr4i7dx.c
    gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -L/home/reccsi/Dev/build-x64/libvpx/lib -c -o /tmp/ffconf.btwr26JX.o /tmp/ffconf.2Hr4i7dx.c
    gcc -Wl,--as-needed -Wl,-z,noexecstack -I/home/reccsi/Dev/build-x64/libvpx/include -L/home/reccsi/Dev/build-x64/libvpx/lib -o /tmp/ffconf.gwkghql5 /tmp/ffconf.btwr26JX.o -lvpx -lm -lpthread -L/home/reccsi/Dev/build-x64/libvpx/lib -lvpx -lm -lpthread -lvorbisenc -lvorbis -logg -lm -llzma -lz -pthread
    check_pkg_config vpx >= 1.3.0 vpx/vpx_decoder.h vpx/vp8dx.h vpx_codec_vp9_dx
    pkg-config --exists --print-errors vpx >= 1.3.0
    check_func_headers vpx/vpx_decoder.h vpx/vp8dx.h vpx_codec_vp9_dx -I/home/reccsi/Dev/build-x64/libvpx/include -L/home/reccsi/Dev/build-x64/libvpx/lib -lvpx -lm -lpthread
    check_ld cc -I/home/reccsi/Dev/build-x64/libvpx/include -L/home/reccsi/Dev/build-x64/libvpx/lib -lvpx -lm -lpthread
    check_cc -I/home/reccsi/Dev/build-x64/libvpx/include -L/home/reccsi/Dev/build-x64/libvpx/lib
    BEGIN /tmp/ffconf.2Hr4i7dx.c
        1   #include <vpx/vpx_decoder.h>
        2   #include <vpx/vp8dx.h>
        3   long check_vpx_codec_vp9_dx(void) { return (long) vpx_codec_vp9_dx; }
        4   int main(void) { return 0; }
    END /tmp/ffconf.2Hr4i7dx.c
    gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -L/home/reccsi/Dev/build-x64/libvpx/lib -c -o /tmp/ffconf.btwr26JX.o /tmp/ffconf.2Hr4i7dx.c
    gcc -Wl,--as-needed -Wl,-z,noexecstack -I/home/reccsi/Dev/build-x64/libvpx/include -L/home/reccsi/Dev/build-x64/libvpx/lib -o /tmp/ffconf.gwkghql5 /tmp/ffconf.btwr26JX.o -lvpx -lm -lpthread -L/home/reccsi/Dev/build-x64/libvpx/lib -lvpx -lm -lpthread -L/home/reccsi/Dev/build-x64/libvpx/lib -lvpx -lm -lpthread -lvorbisenc -lvorbis -logg -lm -llzma -lz -pthread
    check_pkg_config vpx >= 1.3.0 vpx/vpx_encoder.h vpx/vp8cx.h vpx_codec_vp9_cx
    pkg-config --exists --print-errors vpx >= 1.3.0
    check_func_headers vpx/vpx_encoder.h vpx/vp8cx.h vpx_codec_vp9_cx -I/home/reccsi/Dev/build-x64/libvpx/include -L/home/reccsi/Dev/build-x64/libvpx/lib -lvpx -lm -lpthread
    check_ld cc -I/home/reccsi/Dev/build-x64/libvpx/include -L/home/reccsi/Dev/build-x64/libvpx/lib -lvpx -lm -lpthread
    check_cc -I/home/reccsi/Dev/build-x64/libvpx/include -L/home/reccsi/Dev/build-x64/libvpx/lib
    BEGIN /tmp/ffconf.2Hr4i7dx.c
        1   #include <vpx/vpx_encoder.h>
        2   #include <vpx/vp8cx.h>
        3   long check_vpx_codec_vp9_cx(void) { return (long) vpx_codec_vp9_cx; }
        4   int main(void) { return 0; }
    END /tmp/ffconf.2Hr4i7dx.c
    gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -L/home/reccsi/Dev/build-x64/libvpx/lib -c -o /tmp/ffconf.btwr26JX.o /tmp/ffconf.2Hr4i7dx.c
    gcc -Wl,--as-needed -Wl,-z,noexecstack -I/home/reccsi/Dev/build-x64/libvpx/include -L/home/reccsi/Dev/build-x64/libvpx/lib -o /tmp/ffconf.gwkghql5 /tmp/ffconf.btwr26JX.o -lvpx -lm -lpthread -L/home/reccsi/Dev/build-x64/libvpx/lib -lvpx -lm -lpthread -L/home/reccsi/Dev/build-x64/libvpx/lib -lvpx -lm -lpthread -L/home/reccsi/Dev/build-x64/libvpx/lib -lvpx -lm -lpthread -lvorbisenc -lvorbis -logg -lm -llzma -lz -pthread
    check_pkg_config openssl openssl/ssl.h SSL_library_init
    pkg-config --exists --print-errors openssl
    check_func_headers openssl/ssl.h SSL_library_init -lssl -lcrypto -ldl
    check_ld cc -lssl -lcrypto -ldl
    check_cc
    BEGIN /tmp/ffconf.2Hr4i7dx.c
        1   #include <openssl/ssl.h>
        2   long check_SSL_library_init(void) { return (long) SSL_library_init; }
        3   int main(void) { return 0; }
    END /tmp/ffconf.2Hr4i7dx.c
    gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -c -o /tmp/ffconf.btwr26JX.o /tmp/ffconf.2Hr4i7dx.c
    In file included from /usr/include/openssl/evp.h:66:0,
                     from /usr/include/openssl/x509.h:73,
                     from /usr/include/openssl/ssl.h:156,
                     from /tmp/ffconf.2Hr4i7dx.c:1:
    /usr/local/include/openssl/opensslconf.h:18:3: error: #error OPENSSL_ALGORITHM_DEFINES no longer supported
     # error OPENSSL_ALGORITHM_DEFINES no longer supported
       ^
    In file included from /usr/include/openssl/ssl.h:165:0,
                     from /tmp/ffconf.2Hr4i7dx.c:1:
    /usr/include/openssl/kssl.h:72:18: fatal error: krb5.h: No such file or directory
     #include <krb5.h>
                      ^
    compilation terminated.
    check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto
    check_header openssl/ssl.h
    check_cpp
    BEGIN /tmp/ffconf.2Hr4i7dx.c
        1   #include <openssl/ssl.h>
        2   int x;
    END /tmp/ffconf.2Hr4i7dx.c
    gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -E -o /tmp/ffconf.btwr26JX.o /tmp/ffconf.2Hr4i7dx.c
    In file included from /usr/include/openssl/evp.h:66:0,
                     from /usr/include/openssl/x509.h:73,
                     from /usr/include/openssl/ssl.h:156,
                     from /tmp/ffconf.2Hr4i7dx.c:1:
    /usr/local/include/openssl/opensslconf.h:18:3: error: #error OPENSSL_ALGORITHM_DEFINES no longer supported
     # error OPENSSL_ALGORITHM_DEFINES no longer supported
       ^
    In file included from /usr/include/openssl/ssl.h:165:0,
                     from /tmp/ffconf.2Hr4i7dx.c:1:
    /usr/include/openssl/kssl.h:72:18: fatal error: krb5.h: No such file or directory
     #include <krb5.h>
                      ^
    compilation terminated.
    check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32
    check_header openssl/ssl.h
    check_cpp
    BEGIN /tmp/ffconf.2Hr4i7dx.c
        1   #include <openssl/ssl.h>
        2   int x;
    END /tmp/ffconf.2Hr4i7dx.c
    gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -E -o /tmp/ffconf.btwr26JX.o /tmp/ffconf.2Hr4i7dx.c
    In file included from /usr/include/openssl/evp.h:66:0,
                     from /usr/include/openssl/x509.h:73,
                     from /usr/include/openssl/ssl.h:156,
                     from /tmp/ffconf.2Hr4i7dx.c:1:
    /usr/local/include/openssl/opensslconf.h:18:3: error: #error OPENSSL_ALGORITHM_DEFINES no longer supported
     # error OPENSSL_ALGORITHM_DEFINES no longer supported
       ^
    In file included from /usr/include/openssl/ssl.h:165:0,
                     from /tmp/ffconf.2Hr4i7dx.c:1:
    /usr/include/openssl/kssl.h:72:18: fatal error: krb5.h: No such file or directory
     #include <krb5.h>
                      ^
    compilation terminated.
    check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32
    check_header openssl/ssl.h
    check_cpp
    BEGIN /tmp/ffconf.2Hr4i7dx.c
        1   #include <openssl/ssl.h>
        2   int x;
    END /tmp/ffconf.2Hr4i7dx.c
    gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -I/home/reccsi/Dev/build-x64/libvpx/include -E -o /tmp/ffconf.btwr26JX.o /tmp/ffconf.2Hr4i7dx.c
    In file included from /usr/include/openssl/evp.h:66:0,
                     from /usr/include/openssl/x509.h:73,
                     from /usr/include/openssl/ssl.h:156,
                     from /tmp/ffconf.2Hr4i7dx.c:1:
    /usr/local/include/openssl/opensslconf.h:18:3: error: #error OPENSSL_ALGORITHM_DEFINES no longer supported
     # error OPENSSL_ALGORITHM_DEFINES no longer supported
       ^
    In file included from /usr/include/openssl/ssl.h:165:0,
                     from /tmp/ffconf.2Hr4i7dx.c:1:
    /usr/include/openssl/kssl.h:72:18: fatal error: krb5.h: No such file or directory
     #include <krb5.h>
                      ^
    compilation terminated.
    ERROR: openssl not found
    

    Has anyone else seen experienced this?

  • bot1131357
    bot1131357 almost 8 years
    Do you mean that I should add headers and libraries using export CFLAGS? Wouldn't pkg-config take care of that?
  • jww
    jww almost 8 years
    @bot1131357 - Tuck CFLAGS and CXXFLAGS away for all Autotool projects. The annoying Autotool-based projects are the ones that ignore CFLAGS and CXXFLAGS so you have to hack the generated makefiles. And always try to use -Wl,-rpath=/usr/local/ssl/lib on Linux when compiling against a non-standard-located OpenSSL (or other libraries).