OpenVisualCloud / SVT-HEVC

SVT HEVC encoder. Scalable Video Technology (SVT) is a software-based video coding technology that is highly optimized for Intel® Xeon® processors. Using the open source SVT-HEVC encoder, it is possible to spread video encoding processing across multiple Intel® Xeon® processors to achieve a real advantage of processing efficiency.
Other
517 stars 171 forks source link

Windows build error for asm files (CMakeLists bug) #451

Closed luofalei closed 4 years ago

luofalei commented 4 years ago

Related to Pull Request #206 .

For the commits before this pull request, the building goes well on my machine. Specificly, building for the follwing commit is ok.

SHA-1: db9e6e3e0f1b5dd09451da913451102b7acb1b85, Branch RevNo: 141

* Changing default value for fpsInVps to TRUE (#222)

This change was result of investigating issues/218 where ffprobe did not report the correct frame rate.  The solution was to use the fpsInVps command line option.  However a better solution is to change the default so that the fps is always written to the Vps structure (unless the user decides to set fpsInVps to false with a parameter).

However, the building of later commits (all commits until the current master branch) would fail in asm files. The error information is as follows:

C:\Program Files\CMake\share\cmake-3.15\Templates\MSBuild\nasm.targets(33,5): error MSB3721: command “"C:/Windows/System32/yasm.exe" - o "HEVC_ASM_SSE2.dir\Release\EbGatherSaoStatistics16bit_SSE2.obj" -fwin64 -I"H:\svt-hevc\Build\mybuild\Source\Lib\ASM_SSE2\" - I"H:\svt-hevc\Source\Lib\ASM_SSE2\" -I"H:\svt-hevc\Source\API\" -I"H:\svt-hevc\Source\Lib\Codec\" -I"H:\svt -hevc\Source\Lib\C_DEFAULT\" -D"WIN32" -D"_WINDOWS" -D"_FORTIFY_SOURCE=2" -D"NDEBUG" -D"CMAKE_INTDIR="Release"" -D"WIN64" "H:\svt-hevc\Source\Lib\ASM_SSE2\EbGatherSaoStatistics16bit_SSE2.asm"”Exited, code 1. [H:\svt-hevc\Build\mybuild\Source \Lib\ASM_S SE2\HEVC_ASM_SSE2.vcxproj]

It seems like that the working directory yasm was not right.

1480c1 commented 4 years ago

Try downloading another yasm into the root of your SVT-HEVC repo folder and rerun the cmake command with -DYASM=OFF -DCMAKE_ASM_NASM_COMPILER="H:\svt-hevc\yasm.exe" and rerun

tianjunwork commented 4 years ago

Hi @luofalei , if yasm is put in C:/Windows/System32/, compilation always show error. Just put yasm into a user folder.

luofalei commented 4 years ago

Hi @1480c1 and @tianjunwork , thanks for the suggestions. When I move yasm to a user directory included in PATH, compilation goes fine.

tianjunwork commented 4 years ago

Hi @luofalei Falei, you are welcome:)