2

Mac OS X で pulseaudio をコンパイルしようとしていますが、デフォルトではinttypes.herrno.hstdio.h. 入れるとこれらのエラー-isystem/usr/includeCPPFLAGS修正されますが、後でfatal error: 'CoreServices/CoreServices.h' file not found.

-framework CoreServicesand/or も追加しようとしまし-I/System/Library/Frameworks/CoreServices.framework/Headersたが、どちらも機能しません。

コンパイラにそれを見つけさせる適切な方法は何ですか? 私はclangを使用していると思います.gccはさらに多くのエラーを生成します.

4

1 に答える 1

1

あなたは正しい方向に進んでいます。これらはフレームワークとインクルードフラグですが、正しい構成オプションを使用すると、システムインクルードでさえ適切に選択されていることがわかります。

--with-mac-sysrootMakefilesは、属性と属性に基づいてフレームワークを適切に設定しようとし--with-mac-version-minます。

SDKの場所を指定するための構成オプションの例:

--with-mac-sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/ 
--with-mac-version-min=10.7

Mountain lion(10.8)で構築している場合でも、PulseAudioが参照する10.8 SDKにヘッダーがないため、10.7の最小互換性を使用する必要があります。

autoconfが完了autogen.shすると実行されるconfigureオプションをに渡すことができます。configureマスターブランチでテストされた次のコマンドを試すことができます。

./autogen.sh --prefix=/usr/local --disable-jack --disable-hal --disable-bluez --disable-avahi --with-mac-sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/ --with-mac-version-min=10.7 --disable-dbus

m4マクロエラーが発生した場合は、m4マクロをaclocalからm4サブディレクトリにコピーして、再試行してください。

他にもいくつか問題がありますが、これらはすぐに解決される可能性があります。これを構築しようとしている人に役立つ可能性があるため、ここに追加します。

エラー:Multiprocessing.hが見つかりません: これは10.7で非推奨になりましたが、ヘッダーはCoreServicesに引き続き含まれており、ファイル内のinclude命令を変更するだけでビルドされますsrc/pulsecore/semaphore-osx.c

-#include <Multiprocessing.h>
+#include <CoreServices/CoreServices.h>

エラー:'lt_PROGRAM_LTX_preloaded_symbols 'が宣言されていません。 これはコンパイルの問題である可能性がありsrc/daemon/dumpmodules.c、外部マクロを宣言することで修正できます。

extern const lt_dlsymlist lt_preloaded_symbols[];

エラー:gdbm.h:そのようなファイルまたはディレクトリはありません 何らかの理由で、デフォルトのインクルードディレクトリはコンパイラによって考慮されないため、src/Makefileルックにパスを追加して変数を設定できますGDBM_CFLAGS

GDBM_CFLAGS=-I/usr/local/include

nJoy!

于 2013-03-03T23:56:49.990 に答える