1

XCode のコマンド ライン ツールを使用して、Mac でx264 ( http://www.videolan.org/developers/x264.html ) をコンパイルするのに問題があります。次の手順は機能しません。

git clone git://git.videolan.org/x264.git
cd x264
./configure
make

それはあなたに次のエラーを与えることになります:

gcc -Wshadow -O3 -ffast-math -m64  -Wall -I. -I. -falign-loops=16 -mdynamic-no-pic -arch x86_64 -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o x264.o x264.c
In file included from ./extras/cl.h:27,
                 from common/opencl.h:31,
                 from common/common.h:209,
                 from x264.c:33:
./extras/cl_platform.h:64:10: warning: #warning This path should never happen outside of internal operating system development. AvailabilityMacros do not function correctly here!
In file included from common/opencl.h:31,
                 from common/common.h:209,
                 from x264.c:33:
./extras/cl.h:1165: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cl_mem’
./extras/cl.h:1175: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cl_mem’
./extras/cl.h:1187: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cl_int’
./extras/cl.h:1191: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cl_int’
./extras/cl.h:1196: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cl_int’
./extras/cl.h:1199: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cl_int’
./extras/cl.h:1202: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
make: *** [x264.o] Error 1

最新の XCode コマンド ライン ツールを使用して、Mac OS X 用の x264 をどのようにコンパイルしますか?

4

2 に答える 2

1

いろいろいじった後、問題を解決する次のスクリプトを書きました。他の人のためにここに投稿する:

#!/bin/bash                                                                                                                                                                                        

set -e

platform="MacOSX"
SDK="MacOSX10.8"

checkExists() {

    if [ ! -e $1 ]
    then
        echo "Didn't find: $1 -- try to locate parts of this to see how to fix the path"
        exit 1
    else
        echo "using $1"
    fi

}

root="/Applications/Xcode.app/Contents/Developer/Platforms/${platform}.platform/Developer"
oldRoot="/Developer/Platforms/${platform}.platform/Developer"

if [ ! -d "${root}" ]
then
    newRoot="${root}"
    root="${oldRoot}"
fi

if [ ! -d "${root}" ]
then
    echo " "
    echo "Oopsie.  You don't have an SDK root in either of these locations: "
    echo "   ${newRoot} "
    echo "   ${oldRoot}"
    echo " "
    exit 1
fi

export CC="/usr/bin/gcc"
export CFLAGS="-isysroot ${root}/SDKs/${SDK}.sdk -I ${root}/usr/include"

checkExists ${CC}
checkExists ${root}/SDKs/${SDK}.sdk

./configure --enable-shared --enable-static

make clean
make
于 2013-06-25T18:14:42.080 に答える
0

これは、現在のバージョンの OpenCL の既知の問題です。OpenCL を無効にする (./configure --disable-opencl) か、https://github.com/DarkShikari/x264-devel/commit/3af33c98a60a62bf9dee9ccb0f2475b8124a5354からパッチを入手する必要があります。

于 2013-06-26T13:06:50.647 に答える