[FFmpeg-devel] [PATCH] Fix static linking openssl library

Moritz Barsnick barsnick at gmx.net
Thu Jun 22 11:07:14 EEST 2017


(This really belongs to ffmpeg-user.)

On Thu, Jun 22, 2017 at 08:14:56 +0300, Alexandr Topilski wrote:

> use_pkg_config openssl openssl/ssl.h SSL_library_init
> 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 -I/usr/local/include -L/usr/local/lib -lssl -lcrypto
> check_ld cc -I/usr/local/include -L/usr/local/lib -lssl -lcrypto
> check_cc -I/usr/local/include -L/usr/local/lib
> BEGIN /tmp/ffconf.QjUh7os0.c
>     1   #include <openssl/ssl.h>
>     2   #include <stdint.h>
>     3   long check_SSL_library_init(void) { return (long) SSL_library_init; }
>     4   int main(void) { int ret = 0;
>     5    ret |= ((intptr_t)check_SSL_library_init) & 0xFFFF;
>     6   return ret; }
> END /tmp/ffconf.QjUh7os0.c
> gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -march=armv6 -std=c11
> +-fomit-frame-pointer -marm -pthread -isystem/opt/vc/include/ -isystem/opt/vc/include/interface/vmcs_host/linux
> +-isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline -isystem/opt/vc/include/IL -I/usr/local/include -L/usr/local/lib -c -o
> +/tmp/ffconf.YcV8E8C1.o /tmp/ffconf.QjUh7os0.c
> gcc -march=armv6 -Wl,--as-needed -Wl,-z,noexecstack -I/usr/local/include -L/usr/local/lib -o /tmp/ffconf.iIiIBDDZ /tmp/ffconf.YcV8E8C1.o
> +-lssl -lcrypto -L/opt/vc/lib/ -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host -lm -lbz2 -lz -pthread
> /usr/local/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup':
> dso_dlfcn.c:(.text+0x10): undefined reference to `dlopen'
> dso_dlfcn.c:(.text+0x20): undefined reference to `dlsym'
> dso_dlfcn.c:(.text+0x2c): undefined reference to `dlclose'
> /usr/local/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_func':
> dso_dlfcn.c:(.text+0x318): undefined reference to `dlsym'
> dso_dlfcn.c:(.text+0x3bc): undefined reference to `dlerror'

If the static libcrypto.a requires "-dl", its pkg-config file should
say so, i.e.
$ pkg-config --static --libs openssl
should include "-dl". If not, I believe it's wrong (for your particular
library).

Moritz


More information about the ffmpeg-devel mailing list