【问题描述】
鲲鹏环境下编译vlc 3.0.16执行make过程报relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `stderr@@GLIBC_2.17'等错误,具体报错如下:
/usr/bin/ld: /usr/local/lib/libavutil.a(log.o): relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `stderr@@GLIBC_2.17' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib/libavutil.a(log.o)(.text+0x28): unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `stderr@@GLIBC_2.17'
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:18807: libswscale_plugin.la] Error 1
make[4]: *** Waiting for unfinished jobs....
/usr/bin/ld: /usr/local/lib/libavformat.a(md5proto.o): relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `stdout@@GLIBC_2.17' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib/libavformat.a(md5proto.o)(.text+0xc0): unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `stdout@@GLIBC_2.17'
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:14981: libavio_plugin.la] Error 1
make[4]: Leaving directory '/home/vlc-3.0.16/modules'
make[3]: *** [Makefile:28009: all-recursive] Error 1
make[3]: Leaving directory '/home/vlc-3.0.16/modules'
make[2]: *** [Makefile:12802: all] Error 2
make[2]: Leaving directory '/home/vlc-3.0.16/modules'
make[1]: *** [Makefile:1559: all-recursive] Error 1
make[1]: Leaving directory '/home/vlc-3.0.16'
make: *** [Makefile:1446: all] Error 2

【解决方法】
1、重新编译ffmpeg-4.0,先执行CFLAGS=-fPIC ./configure,然后执行make && make install编译;
2、然后重新编译vlc 3.0.16,先执行./bootstrap,接着执行./configure,然后支持make && make install编译。
【问题描述】
鲲鹏环境下编译vlc 3.0.16执行make过程报relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `stderr@@GLIBC_2.17'等错误,具体报错如下:
/usr/bin/ld: /usr/local/lib/libavutil.a(log.o): relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `stderr@@GLIBC_2.17' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib/libavutil.a(log.o)(.text+0x28): unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `stderr@@GLIBC_2.17'
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:18807: libswscale_plugin.la] Error 1
make[4]: *** Waiting for unfinished jobs....
/usr/bin/ld: /usr/local/lib/libavformat.a(md5proto.o): relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `stdout@@GLIBC_2.17' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib/libavformat.a(md5proto.o)(.text+0xc0): unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `stdout@@GLIBC_2.17'
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:14981: libavio_plugin.la] Error 1
make[4]: Leaving directory '/home/vlc-3.0.16/modules'
make[3]: *** [Makefile:28009: all-recursive] Error 1
make[3]: Leaving directory '/home/vlc-3.0.16/modules'
make[2]: *** [Makefile:12802: all] Error 2
make[2]: Leaving directory '/home/vlc-3.0.16/modules'
make[1]: *** [Makefile:1559: all-recursive] Error 1
make[1]: Leaving directory '/home/vlc-3.0.16'
make: *** [Makefile:1446: all] Error 2
【解决方法】
1、重新编译ffmpeg-4.0,先执行CFLAGS=-fPIC ./configure,然后执行make && make install编译;
2、然后重新编译vlc 3.0.16,先执行./bootstrap,接着执行./configure,然后支持make && make install编译。