0

私はここでコードを学んでいます - Mac OS X のビデオ プレーヤーは MPlayerX に依存してい ます : https://bitbucket.org/Tomasen/splayerx/src/ splayerx/src/a97f03511dfc/binaries/x86_64 mplayer-mt というバイナリがあります (.a ファイルではなく、実行可能です) Xcode でバイナリはどのように使用されますか? それをインポートする方法または設定する方法は?

ここに私のビルド失敗情報があります:

Ld /Users/tsung/Library/Developer/Xcode/DerivedData/loss-fqhksenksenkliuhradvuyhbrddeakha/Build/Products/Debug/loss.app/Contents/MacOS/loss normal x86_64 cd /Users/tsung/works/mac/loss setenv MACOSX_DEPLOYMENT_TARGET 10.8 / Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8 .sdk -L/Users/tsung/Library/Developer/Xcode/DerivedData/loss-fqhksenkliuhradvuyhbrddeakha/Build/Products/Debug -L/Users/tsung/works/mac/loss/binaries/x86_64/lib -F/Users/tsung /Library/Developer/Xcode/DerivedData/loss-fqhksenkliuhradvuyhbrddeakha/Build/Products/Debug -filelist /Users/tsung/Library/Developer/Xcode/DerivedData/loss-fqhksenkliuhradvuyhbrddeakha/Build/Intermediates/loss.build/Debug/loss.build/Objects-normal/x86_64/loss.LinkFileList -mmacosx-version-min=10.8 -fobjc-link-runtime -framework Cocoa -o /Users/tsung/Library/Developer/Xcode/DerivedData/loss-fqhksenkliuhradvuyhbrddeakha/Build/Products /Debug/loss.app/Contents/MacOS/loss

アーキテクチャ x86_64 の未定義シンボル: "_MPLog"、次から参照: -[PlayerController playMedia:] (PlayerController.o 内) -[PlayerController playebackStarted] (PlayerController.o 内) "_OBJC_CLASS_$_CoreController"、次から参照: PlayerController.o 内の objc-class-ref 「_OBJC_CLASS_$_PlayList」から参照: PlayerController.o の objc-class-ref 「_OBJC_CLASS_$_StoreHandler」から参照: OSDView.o の objc-class-ref 「_OBJC_CLASS_$_ssclThread」から参照: objc-class-ref PlayerController.o の「_kI386Key」、次から参照: -[PlayerController setMultiThreadMode:] PlayerController.o の「_kKVOPropertyKeyPathAudioDelay」、次から参照: -PlayerController の [PlayerController setupKVO]。o -PlayerController.o 内の [PlayerController dealloc] "_kKVOPropertyKeyPathAudioInfo"、以下から参照 - PlayerController.o 内の [PlayerController setupKVO] - PlayerController.o 内の [PlayerController dealloc] - PlayerController 内の [PlayerController setupKVO] から参照。 o -PlayerController.o 内の [PlayerController dealloc] "_kKVOPropertyKeyPathCachingPercent"、以下から参照 - PlayerController.o 内の [PlayerController setupKVO] - PlayerController.o 内の [PlayerController dealloc] - PlayerController 内の [PlayerController setupKVO] から参照。 o -[PlayerController dealloc] in PlayerController.o "_kKVOPropertyKeyPathLength"、以下から参照:-[PlayerController setupKVO] (PlayerController.o) -[PlayerController dealloc] (PlayerController.o "_kKVOPropertyKeyPathSeekable") から参照: -[PlayerController setupKVO] (PlayerController.o) -[PlayerController dealloc] (PlayerController.o "_kKVOPropertyKeyPathSpeed") から参照: -PlayerController.o の [PlayerController setupKVO] -PlayerController.o "_kKVOPropertyKeyPathSubDelay" の [PlayerController dealloc]、以下から参照 - PlayerController.o の [PlayerController setupKVO] - PlayerController.o "_kKVOPropertyKeyPathSubInfo" の [PlayerController dealloc]、以下から参照-[PlayerController setupKVO] (PlayerController.o) -[PlayerController dealloc] (PlayerController.o) "_kKVOPropertyKeyPathSubScale"、以下から参照: -[PlayerController setupKVO] (PlayerController.o 内) -[PlayerController dealloc] (PlayerController.o 内) "_kKVOPropertyKeyPathVideoInfo" (以下から参照): -[PlayerController setupKVO] (PlayerController.o 内) -[PlayerController dealloc] (PlayerController.o 内) " _kKVOPropertyKeyPathVideoInfoID"、以下から参照: -[PlayerController setupKVO] (PlayerController.o 内) -[PlayerController dealloc] (PlayerController.o 内) "_kMPCPlayStoppedByForceKey" (以下から参照) -[PlayerController playebackStopped:] (PlayerController.o 内) (以下から参照) -[ PlayerController playebackStopped:] 内の PlayerController.o "_kMPCStringMPlayerX"、次から参照:-PlayerController.o の [PlayerController init] "_kPMValDemuxFFMpeg"、以下から参照 - [PlayerController playMedia:] PlayerController.o の "_kUDKeyAC3PassThrough"、以下から参照: + PlayerController.o の [PlayerController 初期化] - PlayerController の [PlayerController playMedia:] .o "_kUDKeyAPNFuzzy" から参照: + PlayerController.o の [PlayerController initialize] "_kUDKeyAutoPlayNext" から参照: + PlayerController.o の [PlayerController 初期化] - PlayerController.o の [PlayerController playebackStopped:] : +[PlayerController initialize] in PlayerController.o -[PlayerController playMedia:] in PlayerController.o "_kUDKeyCacheSize",参照元: +PlayerController.o の [PlayerController initialize] - PlayerController.o の [PlayerController playMedia:] "_kUDKeyCachingLocal"、参照元: + PlayerController.o の [PlayerController initialize] - PlayerController.o の [PlayerController playMedia:] "_kUDKeyDTSPassThrough "、参照先: +PlayerController.o 内の [PlayerController initialize] - PlayerController.o 内の [PlayerController playMedia:] "_kUDKeyEnableMultiThread"、参照元: + PlayerController.o 内の [PlayerController initialize] - PlayerController.o 内の [PlayerController init] " _kUDKeyFFMpegHandleStream"、参照元: -[PlayerController playMedia:]、PlayerController.o 内 "_kUDKeyForceIndex"、参照元:+PlayerController.o の [PlayerController initialize] - PlayerController.o の [PlayerController playMedia:] "_kUDKeyLetterBoxHeight"、参照先: + PlayerController.o の [PlayerController initialize] - PlayerController.o の [PlayerController playMedia:] "_kUDKeyLetterBoxMode"、参照+[PlayerController initialize] in PlayerController.o -[PlayerController playMedia:] in PlayerController.o "_kUDKeyLetterBoxModeAlt"、参照元: +[PlayerController initialize] in PlayerController.o "_kUDKeyMixToStereoMode"、参照元: +[PlayerController initialize] in PlayerController.o -[PlayerController playMedia:] PlayerController.o "_kUDKeyOSDAutoHideTime" 内、以下から参照:+[OSDView initialize] OSDView.o - [OSDView initWithFrame:] OSDView.o "_kUDKeyOSDFontSizeMax"、参照元: +[OSDView initialize] OSDView.o -[OSDView setStringValue:type:updateTimer:] OSDView.o " _kUDKeyOSDFontSizeMin"、以下から参照: +[OSDView initialize] OSDView.o -[OSDView setStringValue:type:updateTimer:] OSDView.o "_kUDKeyOSDFrontColor"、以下から参照: +[OSDView initialize] OSDView.o -[OSDView initWithFrame: ] OSDView.o の「_kUDKeyOverlapSub」から参照: +PlayerController.o の [PlayerController 初期化] - [PlayerController playMedia:] PlayerController.o の「_kUDKeyPlayWhenOpened」、次から参照: +PlayerController の [PlayerController 初期化]。o -[PlayerController playMedia:] in PlayerController.o -[PlayerController playebackStopped:] in PlayerController.o "_kUDKeyPrefer64bitMPlayer", 参照元: +[PlayerController initialize] in PlayerController.o -[PlayerController shouldRun64bitMPlayer] in PlayerController.o "_kUDKeyPreferIPV6", +PlayerController.o の [PlayerController initialize] - PlayerController.o の [PlayerController playMedia:] "_kUDKeyRtspOverHttp"、参照元: + PlayerController.o の [PlayerController initialize] - PlayerController.o の [PlayerController playMedia:] "_kUDKeySmartSubMatching + PlayerController.o の [PlayerController initialize] - PlayerController の [PlayerController playMedia:] から参照されます。o -PlayerController.o の [PlayerController playebackStarted] "_kUDKeySubFileNameRule"、以下から参照: +PlayerController.o の [PlayerController initialize] - PlayerController.o の [PlayerController playMedia:] "_kUDKeySubFontColor"、参照元: + PlayerController.o の [PlayerController initialize] - PlayerController.o の [PlayerController playMedia:] "_kUDKeySubFontPath + PlayerController.o の [PlayerController initialize] - PlayerController の [PlayerController init] から参照。o 「_kUDKeySubScale」、参照先: + PlayerController.o の [PlayerController initialize] - PlayerController.o の [PlayerController playMedia:] - PlayerController.o の [PlayerController changeSubScaleBy:] - PlayerController.o の [PlayerController setSubScale:] 「_kUDKeySubScaleStepValue」 +[PlayerController initialize] in PlayerController.o "_kUDKeyTextSubtitleCharsetConfidenceThresh"、参照元: -[PlayerController subConverter:detectedFile:ofCharsetName:confidence:] PlayerController.o "_kUDKeyTextSubtitleCharsetFallback"、参照元: -[PlayerController subConverter:detectedFile: ofCharsetName:confidence:] PlayerController.o "_kUDKeyTextSubtitleCharsetManual" 内、以下から参照:-[PlayerController subConverter:detectedFile:ofCharsetName:confidence:]、PlayerController.o の「_kUDKeyThreadNum」から参照: +[PlayerController initialize] PlayerController.o の -[PlayerController setMultiThreadMode:] PlayerController.o の「_kUDKeyUseEmbeddedFonts」、参照: + [PlayerController initialize] in PlayerController.o -[PlayerController playMedia:] in PlayerController.o "_kX86_64Key", referenced from: -[PlayerController setMultiThreadMode:] in PlayerController.o ld: symbol(s) not found for Architecture x86_64 clang: error:リンカ コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用してください)+PlayerController.o の [PlayerController initialize] -PlayerController.o の [PlayerController setMultiThreadMode:] "_kUDKeyUseEmbeddedFonts"、参照元: from: -[PlayerController setMultiThreadMode:] in PlayerController.ol ld: アーキテクチャ x86_64 のシンボルが見つかりませんでした。clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (-v を使用して呼び出しを確認してください)+PlayerController.o の [PlayerController initialize] -PlayerController.o の [PlayerController setMultiThreadMode:] "_kUDKeyUseEmbeddedFonts"、参照元: from: -[PlayerController setMultiThreadMode:] in PlayerController.ol ld: アーキテクチャ x86_64 のシンボルが見つかりませんでした。clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (-v を使用して呼び出しを確認してください)o 「_kX86_64Key」、参照元: -[PlayerController setMultiThreadMode:] in PlayerController.o ld: アーキテクチャ x86_64 のシンボルが見つかりませんでした: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用します)o 「_kX86_64Key」、参照元: -[PlayerController setMultiThreadMode:] in PlayerController.o ld: アーキテクチャ x86_64 のシンボルが見つかりませんでした: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用します)

4

2 に答える 2

0

SPlayerXの作成者が引数を使用してバイナリを開始しますが、埋め込みはしないことがわかりました。興味のある方はこちらをチェックしてください:PlayerCore.m

于 2012-09-25T06:44:49.160 に答える
0

リンカーが失敗しました。リンカーは、XCode の外部で直接実行できるファイルとは何の関係もありません。少なくとも私の知る限りでは。

代わりに、ライブラリの .dylib ファイルを xcode ビルドに含めようとしましたか? それらをローカルにダウンロードし、[Build Phases] タブの [Link Binary With Libraries] セクションを使用して、プラス ボタンを使用して現在のプロジェクトに追加します。

以前にこれを行ったことがない場合は、左側のウィンドウでターゲットをクリックして、これらのアイテムを見つける必要があります。

于 2012-09-21T05:29:49.897 に答える