Multilib and high bit depth builds of x265 3.1.1 cannot be linked against SVT-HEVC (VS2017)

Issue #506 closed
Michael Lackner created an issue

When adding the -DENABLE_SVT_HEVC=ON cmake flag to the multilib script or to a regular high bit depth build script (in addition to the other two required environment variables), the build fails in the linker stage. Lots of errors similar to the following will show up, always related to AVX-512 assembly primitives:

x265-static.lib(asm-primitives.obj) : error LNK2019: unresolved external symbol x265_intra_pred_ang16_4_avx512 referenced in function "void __cdecl x265::setupAssemblyPrimitives(struct x265::EncoderPrimitives &,int)" (?setupAssemblyPrimitives\@x265\@\@YAXAEAUEncoderPrimitives\@1\@H\@Z) [X:\Build\x265\2019-07-10\x265_3.1.1\build\vc17-x86_64\10bit\cli.vcxproj]

See the attached build log “stdout.txt” for complete output of an attempt to create a 10-bit build with SVT-HEVC.

This does not happen for an 8-bit build of x265 3.1.1 linked against current SVT-HEVC, but only with 10-bit, 12-bit and consequently all multilib builds I could try.

DevEnv: Visual Studio 2017 (Compiler: cl.exe 19.16.27032.1, Lib manager: lib.exe 14.16.27032.1, Build engine: MSBuild.exe 15.9.21+g9802d43bc3), cmake: 3.14.6, Assembler: nasm.exe 2.13.01.

Comments (7)

  1. Michael Lackner reporter

    Update: Tried my best to escape the At-symbols in the issue, but failed. Now they’re all prefixed with a \… But the error message is still comprehensible.

  2. Michael Lackner reporter

    This was not a x265 issue, it was indeed a user error on my end. I had used a slightly modified version of x265 which could not link against SVT-HEVC as-is. Everything works perfectly fine with a stock x265 3.1.1.

  3. Log in to comment