x265 CLI failure on mac

Issue #622 new
Former user created an issue

building commit 8584bc7 on Big Sur libraries build well but CLI fails it is not really a big deal dor me since I just need the libs to link against ffmpeg, sorry did not save the log since i just rebuilt disabling the Cli. if I remember well, was related to ld command and duplicate symbols for arch x86_64

if you need i can reproduce the issue and send the build log if you need

Comments (2)

  1. freddy

    I’ve got also a build error on MacOS Ventura. This is what I got:

    $ cmake -DCMAKE_INSTALL_PREFIX=/tmp/workspace -DENABLE_SHARED=OFF -DEXTRA_LIB=x265_main10.a;x265_main12.a -DEXTRA_LINK_FLAGS=-L. -DLINKED_10BIT=ON -DLINKED_12BIT=ON .
    $ make -j 16
    Scanning dependencies of target common
    [  1%] Building CXX object encoder/CMakeFiles/encoder.dir/analysis.cpp.o
    [  2%] Building ASM_NASM object common/CMakeFiles/common.dir/x86/pixel-a.asm.o
    [  3%] Building ASM_NASM object common/CMakeFiles/common.dir/x86/ssd-a.asm.o
    [  4%] Building CXX object encoder/CMakeFiles/encoder.dir/framefilter.cpp.o
    [  5%] Building CXX object encoder/CMakeFiles/encoder.dir/frameencoder.cpp.o
    [  6%] Building CXX object encoder/CMakeFiles/encoder.dir/bitcost.cpp.o
    [  8%] Building ASM_NASM object common/CMakeFiles/common.dir/x86/mc-a.asm.o
    [ 12%] Building CXX object encoder/CMakeFiles/encoder.dir/slicetype.cpp.o
    [ 12%] Building ASM_NASM object common/CMakeFiles/common.dir/x86/cpu-a.asm.o
    [ 12%] Building CXX object encoder/CMakeFiles/encoder.dir/search.cpp.o
    [ 12%] Building CXX object encoder/CMakeFiles/encoder.dir/sao.cpp.o
    [ 13%] Building CXX object encoder/CMakeFiles/encoder.dir/level.cpp.o
    [ 14%] Building CXX object encoder/CMakeFiles/encoder.dir/sei.cpp.o
    [ 16%] Building CXX object encoder/CMakeFiles/encoder.dir/nal.cpp.o
    [ 18%] Building ASM_NASM object common/CMakeFiles/common.dir/x86/const-a.asm.o
    [ 18%] Building CXX object encoder/CMakeFiles/encoder.dir/motion.cpp.o
    /tmp/packages/x265-8bit/source/common/x86/cpu-a.asm:36: warning: improperly calling multi-line macro `SETUP_STACK_POINTER' with 0 parameters [-w+macro-params-legacy]
    /tmp/packages/x265-8bit/source/common/x86/cpu-a.asm:723: ... from macro `cglobal' defined here
    /tmp/packages/x265-8bit/source/common/x86/cpu-a.asm:756: ... from macro `cglobal_internal' defined here
    /tmp/packages/x265-8bit/source/common/x86/cpu-a.asm:574: ... from macro `PROLOGUE' defined here
    /tmp/packages/x265-8bit/source/common/x86/cpu-a.asm:36: warning: improperly calling multi-line macro `ALLOC_STACK' with 0 parameters [-w+macro-params-legacy]
    /tmp/packages/x265-8bit/source/common/x86/cpu-a.asm:723: ... from macro `cglobal' defined here
    /tmp/packages/x265-8bit/source/common/x86/cpu-a.asm:756: ... from macro `cglobal_internal' defined here
    /tmp/packages/x265-8bit/source/common/x86/cpu-a.asm:577: ... from macro `PROLOGUE' defined here
    /tmp/packages/x265-8bit/source/common/x86/cpu-a.asm:36: warning: dropping trailing empty parameter in call to multi-line macro `DEFINE_ARGS_INTERNAL' [-w+macro-params-legacy]
    /tmp/packages/x265-8bit/source/common/x86/cpu-a.asm:723: ... from macro `cglobal' defined here
    /tmp/packages/x265-8bit/source/common/x86/cpu-a.asm:756: ... from macro `cglobal_internal' defined here
    /tmp/packages/x265-8bit/source/common/x86/cpu-a.asm:579: ... from macro `PROLOGUE' defined here
    /tmp/packages/x265-8bit/source/common/x86/const-a.asm:103: warning: dropping trailing empty parameter in call to multi-line macro `const' [-w+macro-params-legacy]
    [ 19%] Building ASM_NASM object common/CMakeFiles/common.dir/x86/mc-a2.asm.o
    [ 20%] Building ASM_NASM object common/CMakeFiles/common.dir/x86/pixel-util8.asm.o
    In file included from /tmp/packages/x265-8bit/source/encoder/framefilter.cpp:28:
    In file included from /tmp/packages/x265-8bit/source/encoder/encoder.h:30:
    /tmp/packages/x265-8bit/source/common/scalinglist.h:36:12: warning: declaration shadows a variable in namespace 'x265' [-Wshadow]
        enum { NUM_SIZES = 4 };            // 4x4, 8x8, 16x16, 32x32
               ^
    /tmp/packages/x265-8bit/source/common/cudata.h:51:5: note: previous declaration is here
        NUM_SIZES
        ^
    In file included from /tmp/packages/x265-8bit/source/encoder/analysis.cpp:33:
    In file included from /tmp/packages/x265-8bit/source/encoder/analysis.h:30:
    In file included from /tmp/packages/x265-8bit/source/common/predict.h:30:
    In file included from /tmp/packages/x265-8bit/source/common/quant.h:29:
    /tmp/packages/x265-8bit/source/common/scalinglist.h:36:12: warning: declaration shadows a variable in namespace 'x265' [-Wshadow]
        enum { NUM_SIZES = 4 };            // 4x4, 8x8, 16x16, 32x32
    
    
    #### Made a cut here for readability ###
    
    
    [100%] Linking CXX executable x265
    duplicate symbol 'OrigPicBuffer::recycleOrigPicList()' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main10.a(temporalfilter.cpp.o)
    duplicate symbol 'OrigPicBuffer::~OrigPicBuffer()' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main10.a(temporalfilter.cpp.o)
    duplicate symbol 'TemporalFilter::TemporalFilter()' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main10.a(temporalfilter.cpp.o)
    duplicate symbol 'OrigPicBuffer::~OrigPicBuffer()' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main10.a(temporalfilter.cpp.o)
    duplicate symbol 'TemporalFilter::TemporalFilter()' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main10.a(temporalfilter.cpp.o)
    duplicate symbol 'TemporalFilter::destroyRefPicInfo(TemporalFilterRefPicInfo*)' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main10.a(temporalfilter.cpp.o)
    duplicate symbol 'TemporalFilter::createRefPicInfo(TemporalFilterRefPicInfo*, x265_param*)' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main10.a(temporalfilter.cpp.o)
    duplicate symbol 'TemporalFilter::init(x265_param const*)' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main10.a(temporalfilter.cpp.o)
    duplicate symbol 'OrigPicBuffer::recycleOrigPicList()' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main12.a(temporalfilter.cpp.o)
    duplicate symbol 'OrigPicBuffer::~OrigPicBuffer()' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main12.a(temporalfilter.cpp.o)
    duplicate symbol 'TemporalFilter::TemporalFilter()' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main12.a(temporalfilter.cpp.o)
    duplicate symbol 'OrigPicBuffer::~OrigPicBuffer()' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main12.a(temporalfilter.cpp.o)
    duplicate symbol 'TemporalFilter::TemporalFilter()' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main12.a(temporalfilter.cpp.o)
    duplicate symbol 'TemporalFilter::destroyRefPicInfo(TemporalFilterRefPicInfo*)' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main12.a(temporalfilter.cpp.o)
    duplicate symbol 'TemporalFilter::createRefPicInfo(TemporalFilterRefPicInfo*, x265_param*)' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main12.a(temporalfilter.cpp.o)
    duplicate symbol 'TemporalFilter::init(x265_param const*)' in:
        libx265.a(temporalfilter.cpp.o)
        ./libx265_main12.a(temporalfilter.cpp.o)
    ld: 16 duplicate symbols for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make[2]: *** [x265] Error 1
    make[1]: *** [CMakeFiles/cli.dir/all] Error 2
    make: *** [all] Error 2
    

  2. Helmut K. C. Tessarek

    it is not really a big deal dor me since I just need the libs to link against ffmpeg

    It is a big deal, because as soon as you try to link that library against ffmpeg, you get the exact same error message as above.

  3. Log in to comment