Build with assembly enabled fails with Visual Studio (2010 tested) due to missing .asm in file names

Issue #205 resolved
Steve Trotman created an issue

Building with VS2010 64 bit command prompt and current release of cmake fails when assembly is enabled. The ouptut window shows generation of the various assembly objects eg. Generating pixel-a.asm.obj 4> Generating const-a.asm.obj 5> Generating const-a.asm.obj 4> Generating cpu-a.asm.obj 5> Generating cpu-a.asm.obj 4> Generating ssd-a.asm.obj 5> Generating ssd-a.asm.obj 4> Generating mc-a.asm.obj 5> Generating mc-a.asm.obj 4> Generating mc-a2.asm.obj

However, looking at the output directory, the generated files are incorrectly named and missing the .asm in their names, causing the linking phase to fail.

dir listing ssd-a.obj etc. etc.

linker output in visual studio: Error 1 error LNK1181: cannot open input file 'C:\dev2\x265\build\vc10-x86_64\pixel-a.asm.obj' C:\dev2\x265\build\vc10-x86_64\LINK x265-shared error repeats for each of the misnamed assembler object files.

Comments (9)

  1. Deepthi Nandakumar

    This is not an x265 error. Please check your cmake version or clean your build directory.

  2. Christophe Leske

    I got the same issue. I followed the instructions provided and am building on Windows 8.1 64bit using VS2010.

    I am using CMake 3.4.0 rc2, and I cleaned the build directory several times now.

    :

    5>------ Neues Erstellen gestartet: Projekt: x265-shared, Konfiguration: Debug x64 ------
    5>  Building Custom Rule D:/Arbyte/_Pointclouds/_lib265/source/CMakeLists.txt
    4>  Building Custom Rule D:/Arbyte/_Pointclouds/_lib265/source/CMakeLists.txt
    5>  CMake does not need to re-run because D:\Arbyte\_Pointclouds\_lib265\build\vc10-x86_64\CMakeFiles\generate.stamp is up-to-date.
    4>  CMake does not need to re-run because D:\Arbyte\_Pointclouds\_lib265\build\vc10-x86_64\CMakeFiles\generate.stamp is up-to-date.
    5>  Generating pixel-a.asm.obj
    4>  Generating pixel-a.asm.obj
    4>  Generating const-a.asm.obj
    5>  Generating const-a.asm.obj
    4>  Generating cpu-a.asm.obj
    5>  Generating cpu-a.asm.obj
    4>  Generating ssd-a.asm.obj
    5>  Generating ssd-a.asm.obj
    4>  Generating mc-a.asm.obj
    5>  Generating mc-a.asm.obj
    4>  Generating mc-a2.asm.obj
    5>  Generating mc-a2.asm.obj
    4>  Generating pixel-util8.asm.obj
    5>  Generating pixel-util8.asm.obj
    4>  Generating blockcopy8.asm.obj
    5>  Generating blockcopy8.asm.obj
    4>  Generating pixeladd8.asm.obj
    5>  Generating pixeladd8.asm.obj
    4>  Generating dct8.asm.obj
    5>  Generating dct8.asm.obj
    4>  Generating sad16-a.asm.obj
    5>  Generating sad16-a.asm.obj
    5>  Generating intrapred16.asm.obj
    4>  Generating intrapred16.asm.obj
    5>  Generating ipfilter16.asm.obj
    4>  Generating ipfilter16.asm.obj
    4>  Generating loopfilter.asm.obj
    5>  Generating loopfilter.asm.obj
    4>LINK : fatal error LNK1181: Eingabedatei "D:\Arbyte\_Pointclouds\_lib265\build\vc10-x86_64\pixel-a.asm.obj" kann nicht ge÷ffnet werden.
    5>LINK : fatal error LNK1104: Datei "D:\Arbyte\_Pointclouds\_lib265\build\vc10-x86_64\pixel-a.asm.obj" kann nicht geöffnet werden.
    
  3. Former user Account Deleted

    Did you try with cmake version 2.8?

    when configuring the project using cmake version 3.4, i am getting below cmake warning. But the x265 project is building fine with visual studio 2010 Win64.

    CMake Warning (dev) at C:/Program Files (x86)/CMake 3.4/share/cmake-3.4/Modules/CMakeASMInformation.cmake:35 (if): Policy CMP0054 is not set: Only interpret if() arguments as variables or keywords when unquoted. Run "cmake --help-policy CMP0054" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

    Quoted variables like "ASM" will no longer be dereferenced when the policy is set to NEW. Since the policy is not set the OLD behavior will be used. Call Stack (most recent call first): cmake/CMakeASM_YASMInformation.cmake:67 (include) test/CMakeLists.txt:2 (enable_language) This warning is for project developers. Use -Wno-dev to suppress it

    you can check the cmake policy in CMakeLists.txt file.

  4. Steve Trotman reporter

    This bug is NOT resolved and was closed without any communication with me. I tested cmake 2.8.12, 3.3, and 3.4rc1, each with a clean build directory. i am happy to provide screenshots, logs or video footage as required. This issue blocks x265 from being built with assembler on the windows platform using supported tooling as documented in x265's own build guides.

  5. Former user Account Deleted

    I seem to have the same issue with the compilation of x265 on Microsoft Visual Studio 2010 - using YASM. I tried cmake vs 2.8.12 and 3.4. VS reports the generation of the asm.obj files, but the LINKER complains right away about not being able to find the said files.x265-failure.PNG

  6. Zhenan Lin

    I also meet this problem. OS: Windows 10 x64 VS: VS Community 2015 Update 3 YASM: vsyasm-1.3.0-win64

  7. Jan Weber

    Don't use "vsyasm-1.3.0-win64" instead use "http://www.tortall.net/projects/yasm/releases/yasm-1.3.0-win64.exe"

    Same issue here with "vsyasm-1.3.0-win64" OS: WIndows 10 x64 VS Community 2017 but "yasm-1.3.0-win64" works fine.

  8. Pradeep Ramachandran Account Deactivated

    If yasm works, then it is some problem with vsyasm and not an x265 issue. Can I close this?

  9. Log in to comment