字体:  

播客编译出错解决方案

andy888 发表于: 2007-5-25 16:39 来源: SupeSite/X-Space官方站

出错信息

CODE:

[root@ws x264-linux-Comsenz]# make install
gcc -O4 -ffast-math  -Wall -I. -DHAVE_MALLOC_H -DHAVE_MMX -DHAVE_SSE3 -DARCH_X86 -DSYS_LINUX -DHAVE_PTHREAD -s -fomit-frame-pointer   -c -o x264.o x264.c
gcc -O4 -ffast-math  -Wall -I. -DHAVE_MALLOC_H -DHAVE_MMX -DHAVE_SSE3 -DARCH_X86 -DSYS_LINUX -DHAVE_PTHREAD -s -fomit-frame-pointer   -c -o matroska.o matroska.c
gcc -O4 -ffast-math  -Wall -I. -DHAVE_MALLOC_H -DHAVE_MMX -DHAVE_SSE3 -DARCH_X86 -DSYS_LINUX -DHAVE_PTHREAD -s -fomit-frame-pointer   -c -o muxers.o muxers.c
gcc -O4 -ffast-math  -Wall -I. -DHAVE_MALLOC_H -DHAVE_MMX -DHAVE_SSE3 -DARCH_X86 -DSYS_LINUX -DHAVE_PTHREAD -s -fomit-frame-pointer   -c -o common/cpu.o common/cpu.c
common/cpu.c: In function `x264_cpu_num_processors':
common/cpu.c:220: warning: passing arg 2 of `sched_getaffinity' makes integer from pointer without a cast
common/cpu.c:220: error: too few arguments to function `sched_getaffinity'
make: *** [common/cpu.o] Error 1
解决办法
到包下面的common\cpu.c找到下面这段代码

CODE:

#elif defined(SYS_LINUX)
    unsigned int bit;
    int np;
    cpu_set_t p_aff;
    memset( &p_aff, 0, sizeof(p_aff) );
    sched_getaffinity( 0, &p_aff );
    for( np = 0, bit = 0; bit < sizeof(p_aff); bit++ )
        np += (((uint8_t *)&p_aff)[bit / 8] >> (bit % 8)) & 1;
    return np;
修改成为

CODE:

#elif defined(SYS_LINUX)
    int np;
    np=2;
    return np;
其中np=2为CPU个数,改成当前你的CPU个数

最新回复

phperr at 2007-5-25 16:49:16
顶,我也想知道。
fy007 at 2007-5-27 23:46:28
没用播客。
俊客 at 2007-5-28 00:57:43
支持中!
pc77maikongjian at 2007-6-26 22:49:16
楼主辛苦了