framework - ¿Por qué AVFoundation no se enlaza con mi proyecto XCode 3.2.3 iPhone 4.0.1?
avfoundation framework (2)
Pasé un par de horas luchando con esto una variación de este problema. Estoy publicando esto para ayudar a cualquier otra persona que pueda estar en la misma situación. Ya había vinculado CoreVideo y CoreMedia a mi proyecto. Sin embargo, todavía estaba experimentando este problema. Después de mucho buscar y probar diferentes cosas encontré esta publicación. Aquí está mi solución:
1) Eliminar las bibliotecas problemáticas (CoreVideo y CoreMedia en mi caso). Para ello, elimínelos en la navegación del proyecto y seleccione "Eliminar referencias" y elimínelos de los marcos vinculados en "Fases de compilación".
2) Agregue los marcos nuevamente, limpie y vuelva a compilar.
Estoy siguiendo la referencia en http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html para capturar video desde la cámara del iPhone. Es un proyecto nuevo aparte del código de esa página. También agregué el marco AVFoundation al proyecto. Aquí están los errores del enlazador que recibo:
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
Una vez más, respondo a mi propia pregunta ... También necesitaba agregar los marcos CoreVideo y CoreMedia.