Ошибка компоновщика при попытке использовать MPMoviePlayer - PullRequest
2 голосов
/ 28 февраля 2009

В новой установке Xcode 3.1.2 я пытаюсь использовать iPhone MoviePlayer, как показано в примере кода на http://developer.apple.com/iphone/library/codinghowtos/AudioAndVideo/index.html#INITIATE_VIDEO_PLAYBACK_IN_MY_CODE

Однако Xcode сообщает о следующих ошибках компоновщика, когда я пытаюсь собрать build-n-go:

Building target “EOY” of project “EOY” with configuration “Debug” — (2 errors)
        cd /Users/ed/dev/EOY
    setenv MACOSX_DEPLOYMENT_TARGET 10.5
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.0 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.1.sdk -L/Users/ed/dev/EOY/build/Debug-iphonesimulator -F/Users/ed/dev/EOY/build/Debug-iphonesimulator -filelist /Users/ed/dev/EOY/build/EOY.build/Debug-iphonesimulator/EOY.build/Objects-normal/i386/EOY.LinkFileList -mmacosx-version-min=10.5 -framework Foundation -framework UIKit -framework CoreGraphics -o /Users/ed/dev/EOY/build/Debug-iphonesimulator/EOY.app/EOY
Undefined symbols:
  ".objc_class_name_MPMoviePlayerController", referenced from:
      literal-pointer@__OBJC@__cls_refs@MPMoviePlayerController in MediaSupport.o
  "_MPMoviePlayerPlaybackDidFinishNotification", referenced from:
      _MPMoviePlayerPlaybackDidFinishNotification$non_lazy_ptr in MediaSupport.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
          ".objc_class_name_MPMoviePlayerController", referenced from:
              literal-pointer@__OBJC@__cls_refs@MPMoviePlayerController in MediaSupport.o
          "_MPMoviePlayerPlaybackDidFinishNotification", referenced from:
              _MPMoviePlayerPlaybackDidFinishNotification$non_lazy_ptr in MediaSupport.o
        ld: symbol(s) not found
        collect2: ld returned 1 exit status
Build failed (2 errors)

Ответы [ 3 ]

2 голосов
/ 08 октября 2013

это верно. Еще один способ сделать это - добавить MediaPlayer к цели проекта, выбрав TARGETS-> Build Phases-> Link Binary with Libraries (здесь добавьте MediaPlayer)

1 голос
/ 28 февраля 2009

Да, если ваш код вызывает фреймворк, вы должны добавить этот фреймворк к своей цели и связать его с ней.

Убедитесь, что среда имеет «Относительно текущего SDK» (выберите среду> Получить информацию> вкладка «Общие»), чтобы при сборке устройства она ссылалась на версию устройства, а не на симулятор.

0 голосов
/ 28 февраля 2009

Нашел проблему. Я не прочитал все документы, но их много ...

Во всяком случае, я исправил это, перетаскивая каталог

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.1.sdk/System/Library/Frameworks/MediaPlayer.framework/

в папку Frameworks в XCode и нажмите кнопку ОК в диалоговом окне импорта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...