代码之家  ›  专栏  ›  技术社区  ›  Matt Williamson

为什么AvFoundation不能链接到我的Xcode3.2.3 iPhone4.0.1项目?

  •  28
  • Matt Williamson  · 技术社区  · 15 年前

    我在跟踪参考资料 http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html 从iPhone相机中捕获视频。除了那个页面的代码外,这是一个新的项目。我也在项目中添加了avfoundation框架。以下是我得到的链接器错误:

    Build my project of project my project with configuration Debug
    
    CompileC "build/my project.build/Debug-iphoneos/my project.build/Objects-normal/armv6/MainViewController.o" /Users/mwilliamson/Projects/my_project/iphone/Classes/MainViewController.m normal armv6 objective-c com.apple.compilers.gcc.4_2
    cd /Users/mwilliamson/Projects/my_project/iphone
    setenv LANG en_US.US-ASCII
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin"
    /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -x objective-c -arch armv6 -fmessage-length=0 -pipe -std=c99 -Wno-trigraphs -fpascal-strings -O0 -Wreturn-type -Wunused-variable -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk -fvisibility=hidden -gdwarf-2 -mthumb -miphoneos-version-min=4.0 -iquote "/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/my project-generated-files.hmap" "-I/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/my project-own-target-headers.hmap" "-I/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/my project-all-target-headers.hmap" -iquote "/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/my project-project-headers.hmap" -F/Users/mwilliamson/Projects/my_project/iphone/build/Debug-iphoneos -I/Users/mwilliamson/Projects/my_project/iphone/build/Debug-iphoneos/include -I/Users/mwilliamson/Projects/my_project/iphone/opencv_device/include "-I/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/DerivedSources/armv6" "-I/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/DerivedSources" -include /var/folders/kW/kW6u6B7SGyGYu+nNumtIa++++TI/-Caches-/com.apple.Xcode.501/SharedPrecompiledHeaders/my_project_Prefix-alujyqxskcuyuogdsynmjyrkxbhh/my_project_Prefix.pch -c /Users/mwilliamson/Projects/my_project/iphone/Classes/MainViewController.m -o "/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/Objects-normal/armv6/MainViewController.o"
    
    /Users/mwilliamson/Projects/my_project/iphone/Classes/MainViewController.m: In function '-[MainViewController captureOutput:didOutputSampleBuffer:fromConnection:]':
    /Users/mwilliamson/Projects/my_project/iphone/Classes/MainViewController.m:126: warning: 'MainViewController' may not respond to '-imageFromSampleBuffer:'
    /Users/mwilliamson/Projects/my_project/iphone/Classes/MainViewController.m:126: warning: (Messages without a matching method signature
    /Users/mwilliamson/Projects/my_project/iphone/Classes/MainViewController.m:126: warning: will be assumed to return 'id' and accept
    /Users/mwilliamson/Projects/my_project/iphone/Classes/MainViewController.m:126: warning: '...' as arguments.)
    
    Ld "build/my project.build/Debug-iphoneos/my project.build/Objects-normal/armv6/my project" normal armv6
    cd /Users/mwilliamson/Projects/my_project/iphone
    setenv IPHONEOS_DEPLOYMENT_TARGET 4.0
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin"
    /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk -L/Users/mwilliamson/Projects/my_project/iphone/build/Debug-iphoneos -F/Users/mwilliamson/Projects/my_project/iphone/build/Debug-iphoneos -filelist "/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/Objects-normal/armv6/my project.LinkFileList" -dead_strip -lz -lstdc++ /Users/mwilliamson/Projects/my_project/iphone/opencv_device/lib/libcxcore.a /Users/mwilliamson/Projects/my_project/iphone/opencv_device/lib/libcv.a -miphoneos-version-min=4.0 -framework Foundation -framework UIKit -framework CoreGraphics -framework AVFoundation -o "/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/Objects-normal/armv6/my project"
    
    Undefined symbols:
      "_CVPixelBufferGetBaseAddress", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
      "_CVPixelBufferUnlockBaseAddress", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
      "_CVPixelBufferLockBaseAddress", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
      "_CMSampleBufferGetImageBuffer", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
      "_CVPixelBufferGetHeight", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
      "_kCVPixelBufferPixelFormatTypeKey", referenced from:
          _kCVPixelBufferPixelFormatTypeKey$non_lazy_ptr in MainViewController.o
         (maybe you meant: _kCVPixelBufferPixelFormatTypeKey$non_lazy_ptr)
      "_CVPixelBufferGetWidth", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
      "_CVPixelBufferGetBytesPerRow", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
      "_CMTimeMake", referenced from:
          -[MainViewController setupCaptureSession] in MainViewController.o
      "_CVPixelBufferGetDataSize", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
    ld: symbol(s) not found
    collect2: ld returned 1 exit status
    
    CompileC "build/my project.build/Debug-iphoneos/my project.build/Objects-normal/armv7/MainViewController.o" /Users/mwilliamson/Projects/my_project/iphone/Classes/MainViewController.m normal armv7 objective-c com.apple.compilers.gcc.4_2
    cd /Users/mwilliamson/Projects/my_project/iphone
    setenv LANG en_US.US-ASCII
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin"
    /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -x objective-c -arch armv7 -fmessage-length=0 -pipe -std=c99 -Wno-trigraphs -fpascal-strings -O0 -Wreturn-type -Wunused-variable -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk -fvisibility=hidden -gdwarf-2 -mthumb -miphoneos-version-min=4.0 -iquote "/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/my project-generated-files.hmap" "-I/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/my project-own-target-headers.hmap" "-I/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/my project-all-target-headers.hmap" -iquote "/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/my project-project-headers.hmap" -F/Users/mwilliamson/Projects/my_project/iphone/build/Debug-iphoneos -I/Users/mwilliamson/Projects/my_project/iphone/build/Debug-iphoneos/include -I/Users/mwilliamson/Projects/my_project/iphone/opencv_device/include "-I/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/DerivedSources/armv7" "-I/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/DerivedSources" -include /var/folders/kW/kW6u6B7SGyGYu+nNumtIa++++TI/-Caches-/com.apple.Xcode.501/SharedPrecompiledHeaders/my_project_Prefix-gtrotaxhqdjhgqbqbsnyeqjkaxdt/my_project_Prefix.pch -c /Users/mwilliamson/Projects/my_project/iphone/Classes/MainViewController.m -o "/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/Objects-normal/armv7/MainViewController.o"
    
    /Users/mwilliamson/Projects/my_project/iphone/Classes/MainViewController.m: In function '-[MainViewController captureOutput:didOutputSampleBuffer:fromConnection:]':
    /Users/mwilliamson/Projects/my_project/iphone/Classes/MainViewController.m:126: warning: 'MainViewController' may not respond to '-imageFromSampleBuffer:'
    /Users/mwilliamson/Projects/my_project/iphone/Classes/MainViewController.m:126: warning: (Messages without a matching method signature
    /Users/mwilliamson/Projects/my_project/iphone/Classes/MainViewController.m:126: warning: will be assumed to return 'id' and accept
    /Users/mwilliamson/Projects/my_project/iphone/Classes/MainViewController.m:126: warning: '...' as arguments.)
    
    Ld "build/my project.build/Debug-iphoneos/my project.build/Objects-normal/armv7/my project" normal armv7
    cd /Users/mwilliamson/Projects/my_project/iphone
    setenv IPHONEOS_DEPLOYMENT_TARGET 4.0
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin"
    /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk -L/Users/mwilliamson/Projects/my_project/iphone/build/Debug-iphoneos -F/Users/mwilliamson/Projects/my_project/iphone/build/Debug-iphoneos -filelist "/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/Objects-normal/armv7/my project.LinkFileList" -dead_strip -lz -lstdc++ /Users/mwilliamson/Projects/my_project/iphone/opencv_device/lib/libcxcore.a /Users/mwilliamson/Projects/my_project/iphone/opencv_device/lib/libcv.a -miphoneos-version-min=4.0 -framework Foundation -framework UIKit -framework CoreGraphics -framework AVFoundation -o "/Users/mwilliamson/Projects/my_project/iphone/build/my project.build/Debug-iphoneos/my project.build/Objects-normal/armv7/my project"
    
    Undefined symbols:
      "_CVPixelBufferGetBaseAddress", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
      "_CVPixelBufferUnlockBaseAddress", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
      "_CVPixelBufferLockBaseAddress", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
      "_CMSampleBufferGetImageBuffer", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
      "_CVPixelBufferGetHeight", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
      "_kCVPixelBufferPixelFormatTypeKey", referenced from:
          _kCVPixelBufferPixelFormatTypeKey$non_lazy_ptr in MainViewController.o
         (maybe you meant: _kCVPixelBufferPixelFormatTypeKey$non_lazy_ptr)
      "_CVPixelBufferGetWidth", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
      "_CVPixelBufferGetBytesPerRow", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
      "_CMTimeMake", referenced from:
          -[MainViewController setupCaptureSession] in MainViewController.o
      "_CVPixelBufferGetDataSize", referenced from:
          -[MainViewController imageFromSampleBuffer:] in MainViewController.o
    ld: symbol(s) not found
    collect2: ld returned 1 exit status
    
    2 回复  |  直到 12 年前
        1
  •  76
  •   Matt Williamson    15 年前

    我又一次回答我自己的问题……我还需要添加Corevideo和Coremedia框架。

        2
  •  2
  •   i2097i    12 年前

    我花了几个小时努力解决这个问题的一个变种。我张贴这篇文章是为了帮助任何可能处于同样情况的人。我已经将CoreVideo和CoreMedia链接到我的项目。但是,我仍然遇到这个问题。经过大量的搜索和尝试不同的东西后,我看到了这篇文章。这是我的修复:

    1)删除有问题的库(在我的例子中是Corevideo和Coremedia)。通过在项目导航中删除它们并选择“移除引用”,以及在“构建阶段”中从链接框架中移除它们来实现这一点。

    2)重新添加框架,清理并重新编译。