When I build Vapoursynth.
git clone https://github.com/vapoursynth/vapoursynth.git
cd vapoursynth
./autogen.sh && ./configure
make -j4
# this line has error, like
CXXLD libvapoursynth.la
/usr/bin/ld: ./.libs/libexprfilter.a(libexprfilter_la-exprfilter.o): relocation R_X86_64_PC32 against undefined symbol `_ZN12_GLOBAL__N_115ExprCompiler1289constDataE' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Makefile:1166: recipe for target 'libvapoursynth.la' failed
make: *** [libvapoursynth.la] Error 1
But when change to branch R46
git clone https://github.com/vapoursynth/vapoursynth.git
git checkout R46
./autogen.sh && ./configure
make clean && make -j6
sudo make install
It's Passed!
The make result:
CXX src/filters/misc/libmiscfilters_la-miscfilters.lo
CC src/filters/morpho/libmorpho_la-morpho.lo
CC src/filters/morpho/libmorpho_la-morpho_filters.lo
CC src/filters/morpho/libmorpho_la-morpho_selems.lo
CXX src/filters/removegrain/libremovegrain_la-clense.lo
CXX src/filters/removegrain/libremovegrain_la-removegrainvs.lo
CXX src/filters/removegrain/libremovegrain_la-repairvs.lo
CXX src/filters/removegrain/libremovegrain_la-shared.lo
CXX src/filters/removegrain/libremovegrain_la-verticalcleaner.lo
CC src/filters/vinverse/libvinverse_la-vinverse.lo
CC src/filters/vivtc/libvivtc_la-vivtc.lo
CC src/cython/vapoursynth_la-vapoursynth.lo
CXX src/vspipe/vspipe.o
CXXLD libvapoursynth-script.la
ar: `u' modifier ignored since `D' is the default (see `U')
CXXLD libsubtext.la
CCLD libeedi3.la
CXXLD libmiscfilters.la
CCLD libmorpho.la
CCLD libvinverse.la
CCLD libvivtc.la
CXXLD vspipe
CXXLD libremovegrain.la
CXXLD libvapoursynth.la
ar: `u' modifier ignored since `D' is the default (see `U')
CCLD vapoursynth.la
the make install result
make[1]: 进入目录“/home/why/vapoursynth”
/bin/mkdir -p '/usr/local/lib'
/bin/bash ./libtool --mode=install /usr/bin/install -c libvapoursynth.la libvapoursynth-script.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libvapoursynth.so /usr/local/lib/libvapoursynth.so
libtool: install: /usr/bin/install -c .libs/libvapoursynth.lai /usr/local/lib/libvapoursynth.la
libtool: install: /usr/bin/install -c .libs/libvapoursynth-script.so.0.0.0 /usr/local/lib/libvapoursynth-script.so.0.0.0
libtool: install: (cd /usr/local/lib && { ln -s -f libvapoursynth-script.so.0.0.0 libvapoursynth-script.so.0 || { rm -f libvapoursynth-script.so.0 && ln -s libvapoursynth-script.so.0.0.0 libvapoursynth-script.so.0; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libvapoursynth-script.so.0.0.0 libvapoursynth-script.so || { rm -f libvapoursynth-script.so && ln -s libvapoursynth-script.so.0.0.0 libvapoursynth-script.so; }; })
libtool: install: /usr/bin/install -c .libs/libvapoursynth-script.lai /usr/local/lib/libvapoursynth-script.la
libtool: install: /usr/bin/install -c .libs/libvapoursynth.a /usr/local/lib/libvapoursynth.a
libtool: install: chmod 644 /usr/local/lib/libvapoursynth.a
libtool: install: ranlib /usr/local/lib/libvapoursynth.a
libtool: install: /usr/bin/install -c .libs/libvapoursynth-script.a /usr/local/lib/libvapoursynth-script.a
libtool: install: chmod 644 /usr/local/lib/libvapoursynth-script.a
libtool: install: ranlib /usr/local/lib/libvapoursynth-script.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/sbin" ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/bin/mkdir -p '/usr/local/bin'
/bin/bash ./libtool --mode=install /usr/bin/install -c vspipe '/usr/local/bin'
libtool: install: /usr/bin/install -c .libs/vspipe /usr/local/bin/vspipe
/bin/mkdir -p '/usr/local/lib/vapoursynth'
/bin/bash ./libtool --mode=install /usr/bin/install -c libsubtext.la libeedi3.la libmiscfilters.la libmorpho.la libremovegrain.la libvinverse.la libvivtc.la '/usr/local/lib/vapoursynth'
libtool: install: /usr/bin/install -c .libs/libsubtext.so /usr/local/lib/vapoursynth/libsubtext.so
libtool: install: /usr/bin/install -c .libs/libsubtext.lai /usr/local/lib/vapoursynth/libsubtext.la
libtool: install: /usr/bin/install -c .libs/libeedi3.so /usr/local/lib/vapoursynth/libeedi3.so
libtool: install: /usr/bin/install -c .libs/libeedi3.lai /usr/local/lib/vapoursynth/libeedi3.la
libtool: install: /usr/bin/install -c .libs/libmiscfilters.so /usr/local/lib/vapoursynth/libmiscfilters.so
libtool: install: /usr/bin/install -c .libs/libmiscfilters.lai /usr/local/lib/vapoursynth/libmiscfilters.la
libtool: install: /usr/bin/install -c .libs/libmorpho.so /usr/local/lib/vapoursynth/libmorpho.so
libtool: install: /usr/bin/install -c .libs/libmorpho.lai /usr/local/lib/vapoursynth/libmorpho.la
libtool: install: /usr/bin/install -c .libs/libremovegrain.so /usr/local/lib/vapoursynth/libremovegrain.so
libtool: install: /usr/bin/install -c .libs/libremovegrain.lai /usr/local/lib/vapoursynth/libremovegrain.la
libtool: install: /usr/bin/install -c .libs/libvinverse.so /usr/local/lib/vapoursynth/libvinverse.so
libtool: install: /usr/bin/install -c .libs/libvinverse.lai /usr/local/lib/vapoursynth/libvinverse.la
libtool: install: /usr/bin/install -c .libs/libvivtc.so /usr/local/lib/vapoursynth/libvivtc.so
libtool: install: /usr/bin/install -c .libs/libvivtc.lai /usr/local/lib/vapoursynth/libvivtc.la
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/sbin" ldconfig -n /usr/local/lib/vapoursynth
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib/vapoursynth
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/bin/mkdir -p '/usr/local/lib/python3.7/site-packages'
/bin/bash ./libtool --mode=install /usr/bin/install -c vapoursynth.la '/usr/local/lib/python3.7/site-packages'
libtool: warning: relinking 'vapoursynth.la'
libtool: install: (cd /home/why/vapoursynth; /bin/bash "/home/why/vapoursynth/libtool" --silent --tag CC --tag disable-static --mode=relink gcc -std=c99 -O3 -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter -Wno-unused-function -Wno-ignored-attributes -I./include -mfpmath=sse -msse2 -fvisibility=default -Wno-implicit-fallthrough -avoid-version -module -o vapoursynth.la -rpath /usr/local/lib/python3.7/site-packages src/cython/vapoursynth_la-vapoursynth.lo libvapoursynth.la )
libtool: install: /usr/bin/install -c .libs/vapoursynth.soT /usr/local/lib/python3.7/site-packages/vapoursynth.so
libtool: install: /usr/bin/install -c .libs/vapoursynth.lai /usr/local/lib/python3.7/site-packages/vapoursynth.la
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/sbin" ldconfig -n /usr/local/lib/python3.7/site-packages
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib/python3.7/site-packages
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/bin/mkdir -p '/usr/local/lib/pkgconfig'
/usr/bin/install -c -m 644 pc/vapoursynth.pc pc/vapoursynth-script.pc '/usr/local/lib/pkgconfig'
/bin/mkdir -p '/usr/local/include/vapoursynth'
/usr/bin/install -c -m 644 include/VapourSynth.h include/VSHelper.h include/VSScript.h '/usr/local/include/vapoursynth'
make[1]: 离开目录“/home/why/vapoursynth”
Then
sudo gedit ~/.bashrc add
export PYTHONPATH=/usr/local/lib/python3.7/site-packages:$PYTHONPATH
source ~/.bashrc
vspipe --version
output:
VapourSynth Video Processing Library
Copyright (c) 2012-2019 Fredrik Mellbin
Core R46
API R3.5
Options: -
So, this operation is right? PLEASE Help.