[FFmpeg-user] 2 problem with ffmpeg and x265

宮村 公男 xanadu at apost.plala.or.jp
Fri Apr 11 20:42:54 CEST 2014


Hi, I’m now trying to build ffmpeg with static x265.  But configure script rejects with error.  The error is "ERROR: x265 not found”

I’m using Mac OS X 10.9.2  and LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn)

Here’s a part of config.log

check_pkg_config x265 x265.h x265_encoder_encode
pkg-config --exists --print-errors x265
check_func_headers x265.h x265_encoder_encode -I/Volumes/ffmpeg_compile/include -L/Volumes/ffmpeg_compile/lib -lx265
check_ld cc -I/Volumes/ffmpeg_compile/include -L/Volumes/ffmpeg_compile/lib -lx265
check_cc -I/Volumes/ffmpeg_compile/include -L/Volumes/ffmpeg_compile/lib
BEGIN /var/folders/qk/x9k9r6f955d75dnv5dd2rgm00000gn/T//ffconf.EjOwyBdL.c
    1	#include <x265.h>
    2	long check_x265_encoder_encode(void) { return (long) x265_encoder_encode; }
    3	int main(void) { return 0; }
END /var/folders/qk/x9k9r6f955d75dnv5dd2rgm00000gn/T//ffconf.EjOwyBdL.c
gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -std=c99 -mdynamic-no-pic -fomit-frame-pointer -fPIC -pthread -I/Volumes/ffmpeg_compile/include -L/Volumes/ffmpeg_compile/lib -c -o /var/folders/qk/x9k9r6f955d75dnv5dd2rgm00000gn/T//ffconf.UUCyIpQ5.o /var/folders/qk/x9k9r6f955d75dnv5dd2rgm00000gn/T//ffconf.EjOwyBdL.c
clang: warning: argument unused during compilation: '-L/Volumes/ffmpeg_compile/lib'
gcc -Wl,-dynamic,-search_paths_first -I/Volumes/ffmpeg_compile/include -L/Volumes/ffmpeg_compile/lib -o /var/folders/qk/x9k9r6f955d75dnv5dd2rgm00000gn/T//ffconf.d9N4vA5m /var/folders/qk/x9k9r6f955d75dnv5dd2rgm00000gn/T//ffconf.UUCyIpQ5.o -lx265 -lm -lbz2 -lz -pthread
clang: warning: argument unused during compilation: '-pthread'
Undefined symbols for architecture x86_64:
  "std::__1::locale::use_facet(std::__1::locale::id&) const", referenced from:
      x265::ScanGenerator::GetNextIndex(unsigned int, unsigned int) in libx265.a(TComRom.cpp.o)
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in libx265.a(TComRom.cpp.o)
  "std::__1::ios_base::getloc() const", referenced from:
      x265::ScanGenerator::GetNextIndex(unsigned int, unsigned int) in libx265.a(TComRom.cpp.o)
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in libx265.a(TComRom.cpp.o)
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__init(unsigned long, char)", referenced from:
      std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > std::__1::__pad_and_output<char, std::__1::char_traits<char> >(std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> >, char const*, char const*, char const*, std::__1::ios_base&, char) in libx265.a(TComRom.cpp.o)
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()", referenced from:
      std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > std::__1::__pad_and_output<char, std::__1::char_traits<char> >(std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> >, char const*, char const*, char const*, std::__1::ios_base&, char) in libx265.a(TComRom.cpp.o)
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::put(char)", referenced from:
      x265::ScanGenerator::GetNextIndex(unsigned int, unsigned int) in libx265.a(TComRom.cpp.o)
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::flush()", referenced from:
      x265::ScanGenerator::GetNextIndex(unsigned int, unsigned int) in libx265.a(TComRom.cpp.o)
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry::sentry(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in libx265.a(TComRom.cpp.o)
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry::~sentry()", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in libx265.a(TComRom.cpp.o)
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(int)", referenced from:
      x265::ScanGenerator::GetNextIndex(unsigned int, unsigned int) in libx265.a(TComRom.cpp.o)
  "std::__1::cerr", referenced from:
      x265::ScanGenerator::GetNextIndex(unsigned int, unsigned int) in libx265.a(TComRom.cpp.o)
  "std::__1::ctype<char>::id", referenced from:
      x265::ScanGenerator::GetNextIndex(unsigned int, unsigned int) in libx265.a(TComRom.cpp.o)
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in libx265.a(TComRom.cpp.o)
  "std::__1::locale::~locale()", referenced from:
      x265::ScanGenerator::GetNextIndex(unsigned int, unsigned int) in libx265.a(TComRom.cpp.o)
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in libx265.a(TComRom.cpp.o)
  "std::__1::ios_base::__set_badbit_and_consider_rethrow()", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in libx265.a(TComRom.cpp.o)
  "std::__1::ios_base::clear(unsigned int)", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in libx265.a(TComRom.cpp.o)
  "std::terminate()", referenced from:
      ___clang_call_terminate in libx265.a(TComRom.cpp.o)
      ___clang_call_terminate in libx265.a(bitcost.cpp.o)
      ___clang_call_terminate in libx265.a(encoder.cpp.o)
      ___clang_call_terminate in libx265.a(threadpool.cpp.o)
      ___clang_call_terminate in libx265.a(frameencoder.cpp.o)
      ___clang_call_terminate in libx265.a(TComPic.cpp.o)
      ___clang_call_terminate in libx265.a(slicetype.cpp.o)
      ...
  "vtable for __cxxabiv1::__class_type_info", referenced from:
      typeinfo for x265_encoder in libx265.a(encoder.cpp.o)
      typeinfo for x265::FrameFilter in libx265.a(encoder.cpp.o)
      typeinfo for x265::TComPicYuv in libx265.a(TComPicYuv.cpp.o)
      typeinfo for x265::ThreadPool in libx265.a(threadpool.cpp.o)
      typeinfo for x265::SEI in libx265.a(frameencoder.cpp.o)
      typeinfo for x265::FrameFilter in libx265.a(frameencoder.cpp.o)
      typeinfo for x265::TComBitIf in libx265.a(frameencoder.cpp.o)
      ...
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for __cxxabiv1::__si_class_type_info", referenced from:
      typeinfo for x265::Encoder in libx265.a(encoder.cpp.o)
      typeinfo for x265::ThreadPoolImpl in libx265.a(threadpool.cpp.o)
      typeinfo for x265::PoolThread in libx265.a(threadpool.cpp.o)
      typeinfo for x265::SEIPictureTiming in libx265.a(frameencoder.cpp.o)
      typeinfo for x265::SEIRecoveryPoint in libx265.a(frameencoder.cpp.o)
      typeinfo for x265::SEIGradualDecodingRefreshInfo in libx265.a(frameencoder.cpp.o)
      typeinfo for x265::SEIDisplayOrientation in libx265.a(frameencoder.cpp.o)
      ...
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for __cxxabiv1::__vmi_class_type_info", referenced from:
      typeinfo for x265::FrameEncoder in libx265.a(frameencoder.cpp.o)
      typeinfo for x265::TEncSbac in libx265.a(TEncSbac.cpp.o)
      typeinfo for x265::MotionEstimate in libx265.a(motion.cpp.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "operator delete[](void*)", referenced from:
      x265::BitCost::destroy() in libx265.a(bitcost.cpp.o)
      x265::Encoder::create() in libx265.a(encoder.cpp.o)
      x265::Encoder::destroy() in libx265.a(encoder.cpp.o)
      x265::TComPicSym::destroy() in libx265.a(TComPicSym.cpp.o)
      x265::FrameEncoder::destroy() in libx265.a(frameencoder.cpp.o)
      x265::FrameEncoder::init(x265::Encoder*, int) in libx265.a(frameencoder.cpp.o)
      x265::FrameEncoder::compressFrame() in libx265.a(frameencoder.cpp.o)
      ...
  "operator delete(void*)", referenced from:
      _x265_encoder_open_15 in libx265.a(api.cpp.o)
      x265::Encoder::~Encoder() in libx265.a(encoder.cpp.o)
      x265::Encoder::create() in libx265.a(encoder.cpp.o)
      x265::Encoder::destroy() in libx265.a(encoder.cpp.o)
      x265::Encoder::encode(bool, x265_picture const*, x265_picture*, x265::NALUnitEBSP**) in libx265.a(encoder.cpp.o)
      x265::FrameFilter::~FrameFilter() in libx265.a(encoder.cpp.o)
      x265::TComPicSym::create(int, int, int, unsigned int, unsigned int) in libx265.a(TComPicSym.cpp.o)
      ...
  "operator new[](unsigned long)", referenced from:
      x265::BitCost::setQP(unsigned int) in libx265.a(bitcost.cpp.o)
      x265::BitCost::CalculateLogs() in libx265.a(bitcost.cpp.o)
      x265::Encoder::create() in libx265.a(encoder.cpp.o)
      x265::TComPicSym::create(int, int, int, unsigned int, unsigned int) in libx265.a(TComPicSym.cpp.o)
      x265::FrameEncoder::init(x265::Encoder*, int) in libx265.a(frameencoder.cpp.o)
      x265::FrameEncoder::compressFrame() in libx265.a(frameencoder.cpp.o)
      x265::TComLoopFilter::create(unsigned int) in libx265.a(TComLoopFilter.cpp.o)
      ...
  "operator new(unsigned long)", referenced from:
      _x265_encoder_open_15 in libx265.a(api.cpp.o)
      x265::Encoder::create() in libx265.a(encoder.cpp.o)
      x265::Encoder::encode(bool, x265_picture const*, x265_picture*, x265::NALUnitEBSP**) in libx265.a(encoder.cpp.o)
      x265::TComPicSym::create(int, int, int, unsigned int, unsigned int) in libx265.a(TComPicSym.cpp.o)
      x265::TComPicSym::allocSaoParam(x265::TComSampleAdaptiveOffset*) in libx265.a(TComPicSym.cpp.o)
      x265::ThreadPool::allocThreadPool(int) in libx265.a(threadpool.cpp.o)
      x265::FrameEncoder::compressFrame() in libx265.a(frameencoder.cpp.o)
      ...
  "___cxa_begin_catch", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in libx265.a(TComRom.cpp.o)
      ___clang_call_terminate in libx265.a(TComRom.cpp.o)
      ___clang_call_terminate in libx265.a(bitcost.cpp.o)
      ___clang_call_terminate in libx265.a(encoder.cpp.o)
      ___clang_call_terminate in libx265.a(threadpool.cpp.o)
      ___clang_call_terminate in libx265.a(frameencoder.cpp.o)
      ___clang_call_terminate in libx265.a(TComPic.cpp.o)
      ...
  "___cxa_end_catch", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in libx265.a(TComRom.cpp.o)
  "___cxa_pure_virtual", referenced from:
      vtable for x265::Thread in libx265.a(threading.cpp.o)
      vtable for x265::WaveFront in libx265.a(wavefront.cpp.o)
  "___dynamic_cast", referenced from:
      x265::JobProvider::flush() in libx265.a(threadpool.cpp.o)
  "___gxx_personality_v0", referenced from:
      _x265_encoder_open_15 in libx265.a(api.cpp.o)
      Dwarf Exception Unwind Info (__eh_frame) in libx265.a(api.cpp.o)
      x265::ScanGenerator::GetNextIndex(unsigned int, unsigned int) in libx265.a(TComRom.cpp.o)
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in libx265.a(TComRom.cpp.o)
      std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > std::__1::__pad_and_output<char, std::__1::char_traits<char> >(std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> >, char const*, char const*, char const*, std::__1::ios_base&, char) in libx265.a(TComRom.cpp.o)
      Dwarf Exception Unwind Info (__eh_frame) in libx265.a(TComRom.cpp.o)
      x265::BitCost::setQP(unsigned int) in libx265.a(bitcost.cpp.o)
      ...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ERROR: x265 not found


And also, I can build ffmpeg with shared x265 but this time dyld: Library not loaded error occurred.

$ which ffmpeg
/Volumes/ffmpeg_compile/bin/ffmpeg
$ ffmpeg 
dyld: Library not loaded: libx265.15.dylib
  Referenced from: /Volumes/ffmpeg_compile/bin/ffmpeg
  Reason: image not found
Trace/BPT trap: 5
$ otool -L /Volumes/ffmpeg_compile/bin/ffmpeg
/Volumes/ffmpeg_compile/bin/ffmpeg:
	/System/Library/Frameworks/QTKit.framework/Versions/A/QTKit (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1056.13.0)
	/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.8.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.14.0)
	/System/Library/Frameworks/VideoDecodeAcceleration.framework/Versions/A/VideoDecodeAcceleration (compatibility version 1.0.0, current version 1.0.0)
	libx265.15.dylib (compatibility version 15.0.0, current version 0.9.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
	/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.8.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)


if I put libx265.15.dylib to /usr/local/lib, ffmpeg can execute.

My final aim is to build ffmpeg with static x265 library.  But as a part of try and error, I have encountered 2 problems.  Please solve them...


More information about the ffmpeg-user mailing list