2011-04-14 106 views
1

嘿,所有 我想在Linux(x64)下编译x264。但它一直在抛出我一个错误。我搜索了一下,但什么也没找到。这里的命令行历史:错误,同时在linux中编译x264

 
[email protected]:~/x264$ git clone git://git.videolan.org/x264.git 
Cloning into x264... 
remote: Counting objects: 13539, done. 
remote: Compressing objects: 100% (4416/4416), done. 
remote: Total 13539 (delta 11005), reused 11225 (delta 9082) 
Receiving objects: 100% (13539/13539), 3.29 MiB | 2.79 MiB/s, done. 
Resolving deltas: 100% (11005/11005), done. 
[email protected]:~/x264/x264$ ./configure 
Found no assembler 
Minimum version is yasm-0.7.0 
If you really want to compile without asm, configure with --disable-asm. 
[email protected]:~/x264/x264$ ./configure --disable-asm 
Platform: X86_64 
System:  LINUX 
asm:  no 
avs:  no 
lavf:  no 
ffms:  no 
gpac:  no 
gpl:  yes 
thread:  posix 
filters: crop select_every 
debug:  no 
gprof:  no 
PIC:  no 
shared:  no 
visualize: no 
bit depth: 8 

You can run 'make' or 'make fprofiled' now. 
[email protected]:~/x264/x264$ make 
gcc -Wshadow -O3 -ffast-math -Wall -I. -std=gnu99 -s -fomit-frame-pointer -fno-tree-vectorize -c -o x264.o x264.c 
In file included from common/common.h:864, 
       from x264.c:33: 
common/rectangle.h: In function āx264_macroblock_cache_rectā: 
common/rectangle.h:84: error: āv4siā undeclared (first use in this function) 
common/rectangle.h:84: error: (Each undeclared identifier is reported only once 
common/rectangle.h:84: error: for each function it appears in.) 
common/rectangle.h:84: error: expected ā;ā before āv16ā 
common/rectangle.h:86: error: ā__m128ā undeclared (first use in this function) 
common/rectangle.h:86: error: expected ā;ā before āv16ā 
common/rectangle.h:87: error: expected ā;ā before āv16ā 
common/rectangle.h:89: error: expected ā;ā before āv16ā 
common/rectangle.h:90: error: expected ā;ā before āv16ā 
make: *** [x264.o] Error 1 
[email protected]:~/x264/x264$ 

和这里的文件,从线83至91:

 
#if HAVE_VECTOREXT && defined(__SSE__) 
     v4si v16 = {v,v,v,v}; 

     M128(d+s*0+0) = (__m128)v16; 
     M128(d+s*1+0) = (__m128)v16; 
     if(h == 2) return; 
     M128(d+s*2+0) = (__m128)v16; 
     M128(d+s*3+0) = (__m128)v16; 
#else 

回答

1

v4si是SSE标识,仅当-msse传递给GCC存在。报告上游的错误。