11

I got a strange problem. I tried to install x264. When run sudo ./configure --enable-shared, it gave:

Found no assembler Minimum version is yasm-0.7.0 If you really want to compile without asm, configure with --disable-asm.

But I already installed yasm-0.7.0 ,to prove that ,i run yasm --version,it gave:

*yasm 0.7.0.2066 Compiled on May 8 2012. Copyright (c) 2001-2008 Peter Johnson and other Yasm developers. Run yasm --license for licensing overview and summary.*

I install yasm to /usr/local/yasm, Why can it not find yasm?

Catskul
  • 17,916
  • 15
  • 84
  • 113
zhen lee
  • 333
  • 2
  • 6
  • 18

5 Answers5

12

Just in case of someone got here from Google, looking for a recent solution.

Recent versions of x264 moved from yasm to nasm, hence breaking some FFMPEG install scripts or tutorials. To check if it is the case, look at the output. If it reads

Minimum version is nasm-2.13

then you are to install nasm. In Ubuntu 16.04 repos there's nasm 2.11; so you'll have to build from sources, following official instruction http://www.linuxfromscratch.org/blfs/view/svn/general/nasm.html.

Serj Zaharchenko
  • 2,621
  • 1
  • 17
  • 20
8

sudo ignores your PATH environment variable and uses its own.

compare:

$ which yasm
/usr/local/bin/yasm

with:

$ sudo which yasm
/usr/bin/yasm

To solve, do:

$ sudo PATH=$PATH:/usr/local/bin which yasm
/usr/local/bin/yasm

or rather

$ sudo PATH=$PATH:/usr/local/bin ./configure --enable-shared
Catskul
  • 17,916
  • 15
  • 84
  • 113
2

If you are running Ubuntu and if "which yasm " results in nothing Please try out the below mentioned command for building the x64....

sudo apt-get install yasm

curious_beast
  • 85
  • 1
  • 9
0

The error message means that you have an old version of yasm on your system, so you should update it! see here: https://trac.ffmpeg.org/wiki/CompilationGuide/Quick/libx264

-1

Maybe you should rebuild the yasm for the correct path /usr/bin/yasm.

toolchainX
  • 1,998
  • 3
  • 27
  • 43
  • `/usr/bin` is not the correct/conventional path for locally built software. It's typically placed in `/usr/local/bin` to avoid overwriting/mixing files that were installed by the system's package manager. Mixing/overwriting can otherwise wreak havoc. – Catskul Jun 07 '12 at 22:01
  • @Catskul You're right. I just find out that the yasm is installed in the /usr/bin dirs by default. – toolchainX Jun 08 '12 at 08:46