Hi,
while trying to compile my own avidemux this error has been thrown while making common plugins:
Quote
/usr/bin/ld: /usr/local/lib/libxvidcore.a(qpel_mmx.o): relocation R_X86_64_PC32 against symbol `xvid_FIR_14_3_2_1' 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
make[2]: *** [ADM_videoEncoder/xvid4/libADM_ve_xvid4.so] Error 1
any idea what is wrong?
My setup:
avidemux_2.6.10
gcc version 4.8.4
libxvidcore.a comes from source I have compiled earlier, have no idea what version it is
Thanks
dpkg -l libxvidcore*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===========================-==================-==================-===========================================================
ii libxvidcore-dev:amd64 2:1.3.2-9ubuntu1 amd64 Open source MPEG-4 video codec (development)
ii libxvidcore4:amd64 2:1.3.2-9ubuntu1 amd64 Open source MPEG-4 video codec (library)
If you have none of the above installed:
install: sudo apt-get update && sudo apt-get install ]libxvidcore4
try again, if still not working:
install sudo apt-get update && sudo apt-get install libxvidcore-dev
report back
Hello,
I have these installed:
easi@vasil:/tmp/avidemux_2.6.10/buildPluginsCommon$ dpkg -l libxvidcore*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============================================-============================-============================-=================================================================================================
ii libxvidcore-dev:amd64 2:1.3.2-9ubuntu1 amd64 Open source MPEG-4 video codec (development)
ii libxvidcore4:amd64 2:1.3.2-9ubuntu1 amd64 Open source MPEG-4 video codec (library)
However libxvidcore.a installed by the package is located at /usr/lib/x86_64-linux-gnu/libxvidcore.a. In the build log I can see it's trying to use library from /usr/local/lib/libxvidcore.a.
I have tried to rename /usr/lib/x86_64-linux-gnu/libxvidcore.a and link it to /usr/lib/x86_64-linux-gnu/libxvidcore.a, but had not helped. Even the error is same. Have also tried to add param -fPIC to makefile section of libADM_ve_xvid4. Then error had changed to:
make[2]: Entering directory `/tmp/avidemux_2.6.10/buildPluginsCommon'
make[2]: *** No rule to make target `/usr/local/lib/libxvidcore.a', needed by `ADM_videoEncoder/xvid4/libADM_ve_xvid4.so'. Stop.
make[2]: Leaving directory `/tmp/avidemux_2.6.10/buildPluginsCommon'
make[1]: *** [ADM_videoEncoder/xvid4/CMakeFiles/ADM_ve_xvid4.dir/all] Error 2
make[1]: Leaving directory `/tmp/avidemux_2.6.10/buildPluginsCommon'
make: *** [all] Error 2
It cannot use a static lib (xvidcore.a) to build the plugin (libADM_vidEncXvid.so)
It will work if it can use the dynamic lib i.e. libxvidcore.so
Great,
but how can I tell to use dynamic library? I have both Installed in /usr/lib/x86_64-linux-gnu/. For some reason linker is looking for libs in /usr/local/lib where dynamic library might be missing. I will check, try to link /usr/lib/x86_64-linux-gnu/libxvidcore.so to /usr/local/lib and update later.
Thanks for help!
Can you use this build: avidemux Cli/Qt 2.6.911 64-bit deb download ubuntu 14.04.3 LTS (http://avidemux.org/smif/index.php/topic,16517.0.html)
Hi Guys,
so I have tried to link /usr/lib/x86_64-linux-gnu/libxvidcore.so to /usr/local/lib; make clean; make on plugins with no effect. I have decided to remove whole dir and unpack it again from fresly downloaded source and build is done with no error.
Anyway thanks for help!