FFMPEG编译

来源:互联网 发布:淘宝管控记录大促 编辑:程序博客网 时间:2024/05/01 13:57


(一)如果是在Xcode4.0,SDK4.3真机上编译:

     1、 新建一个文件夹:然后打开终端,cd到这个文件夹

     2、在终端中输入:git clone git://github.com/lajos/iFrameExtractor.git

    3、等到从网上将iFrameExtractor下载完全之后,打开文件夹找到build_armv7。利用文本打开器打开。

         ./configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-cross-compile --arch=arm --target-os=darwin --cc=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc --as='gas-preprocessor/gas-preprocessor.pl /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk --cpu=cortex-a8 --extra-cflags='-arch armv7' --extra-ldflags='-arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk' --enable-pic

   4、编译build_armv7

    5、打开Xcode。

       左边选中工程,中间选中target,右面选中Build settings,在Architectures选项卡里面选择Architetures为Optimized(armv7),Base SDK为Latest iOS(iOS 4.3) Valid Architectures填写armv7.  

      6、编译目标选择iOS Device,当然,如果有连接电脑的设备,可以选择设备.

      7、

编译,提示:

Undefined symbols for architecture armv7:

  "_BZ2_bzDecompressInit", referenced from:

      _matroska_decode_buffer in libavformat.a(matroskadec.o)

  "_BZ2_bzDecompressEnd", referenced from:

      _matroska_decode_buffer in libavformat.a(matroskadec.o)

  "_BZ2_bzDecompress", referenced from:

      _matroska_decode_buffer in libavformat.a(matroskadec.o)

 

添加库libbz2.1.0.dylib,再次编译,OK通过.


(一)如果是在Xcode4.0,SDK4.3模拟器上编译:

    将打开文件夹找到build_i386。

     替换为一下代码:

   #!/bin/tcsh -f


if (! -d i386) mkdir i386
if (! -d lib) mkdir lib


rm i386/*.a


#setenv CPPFLAGS "-arch i386"
#setenv CPPFLAGS "-arch i386"
#setenv CPPFLAGS "-arch i386"
#setenv CFLAGS "-arch i386"
#setenv CPP "-arch i386"
#setenv CXXFLAGS "-arch i386"
#setenv LDFLAGS "-arch i386"


setenv ACTION build
setenv ALTERNATE_GROUP staff
setenv ALTERNATE_MODE u+w,go-w,a+rX
setenv ALTERNATE_OWNER lajos
setenv ALWAYS_SEARCH_USER_PATHS NO
setenv APPLE_INTERNAL_DEVELOPER_DIR /AppleInternal/Developer
setenv APPLE_INTERNAL_DIR /AppleInternal
setenv APPLE_INTERNAL_DOCUMENTATION_DIR /AppleInternal/Documentation
setenv APPLE_INTERNAL_LIBRARY_DIR /AppleInternal/Library
setenv APPLE_INTERNAL_TOOLS /AppleInternal/Developer/Tools
setenv APPLY_RULES_IN_COPY_FILES NO
setenv ARCHS i386
setenv ARCHS_STANDARD_32_BIT i386
setenv ARCHS_UNIVERSAL_IPHONE_OS i386
setenv BUILD_COMPONENTS "headers build"
setenv BUILD_STYLE Debug
setenv BUILD_VARIANTS normal
setenv CHMOD /bin/chmod
setenv CHOWN /usr/sbin/chown
setenv CLEAN_PRECOMPS YES
setenv CLONE_HEADERS NO
setenv CODE_SIGN_CONTEXT_CLASS XCCodeSignContext
setenv COMMAND_MODE legacy
setenv COMPRESS_PNG_FILES YES
setenv CONFIGURATION Debug
setenv COPYING_PRESERVES_HFS_DATA NO
setenv COPY_PHASE_STRIP NO
setenv COPY_RESOURCES_FROM_STATIC_FRAMEWORKS YES
setenv CP /bin/cp
setenv CURRENT_ARCH i386
setenv CURRENT_VARIANT normal
setenv DEAD_CODE_STRIPPING NO
setenv DEBUGGING_SYMBOLS YES
setenv DEBUG_INFORMATION_FORMAT dwarf-with-dsym
setenv DEPLOYMENT_LOCATION NO
setenv DEPLOYMENT_POSTPROCESSING NO
setenv DEVELOPER_APPLICATIONS_DIR /Developer/Applications
setenv DEVELOPER_BIN_DIR /Developer/usr/bin
setenv DEVELOPER_DIR /Developer
setenv DEVELOPER_FRAMEWORKS_DIR /Developer/Library/Frameworks
setenv DEVELOPER_FRAMEWORKS_DIR_QUOTED '"/Developer/Library/Frameworks"'
setenv DEVELOPER_LIBRARY_DIR /Developer/Library
setenv DEVELOPER_SDK_DIR /Developer/SDKs
setenv DEVELOPER_TOOLS_DIR /Developer/Tools
setenv DEVELOPER_USR_DIR /Developer/usr
setenv DEVELOPMENT_LANGUAGE English
setenv DOCUMENTATION_FOLDER_PATH /Documentation
setenv DO_HEADER_SCANNING_IN_JAM NO
setenv EFFECTIVE_PLATFORM_NAME -iphonesimulator
setenv ENABLE_HEADER_DEPENDENCIES YES
setenv ENABLE_OPENMP_SUPPORT NO
setenv EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS ".svn CVS"
setenv EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES "*.nib *.lproj *.framework *.gch (*) CVS .svn *.xcodeproj *.xcode *.pbproj *.pbxproj"
setenv FRAMEWORK_FLAG_PREFIX -framework
setenv FRAMEWORK_VERSION A
setenv GCC3_VERSION 3.3
setenv GCC_DYNAMIC_NO_PIC NO
setenv GCC_ENABLE_FIX_AND_CONTINUE NO
setenv GCC_INLINES_ARE_PRIVATE_EXTERN YES
setenv GCC_OPTIMIZATION_LEVEL 0
setenv GCC_PFE_FILE_C_DIALECTS "c objective-c c++ objective-c++"
setenv GCC_PRECOMPILE_PREFIX_HEADER YES
setenv GCC_PREFIX_HEADER Prefix.pch
setenv GCC_PRODUCT_TYPE_PREPROCESSOR_DEFINITIONS " __IPHONE_OS_VERSION_MIN_REQUIRED=30000"
setenv GCC_SYMBOLS_PRIVATE_EXTERN YES
setenv GCC_TREAT_WARNINGS_AS_ERRORS NO
setenv GCC_VERSION 4.2
setenv GCC_VERSION_IDENTIFIER __2
setenv GCC_WARN_ABOUT_RETURN_TYPE YES
setenv GCC_WARN_UNUSED_VALUE NO
setenv GCC_WARN_UNUSED_VARIABLE YES
setenv GENERATE_MASTER_OBJECT_FILE NO
setenv GENERATE_PKGINFO_FILE YES
setenv GENERATE_PROFILING_CODE NO
setenv GID 20
setenv GROUP staff
setenv HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT YES
setenv HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES YES
setenv HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERS YES
setenv HEADERMAP_INCLUDES_PROJECT_HEADERS YES
setenv ICONV /usr/bin/iconv
setenv INFOPLIST_EXPAND_BUILD_SETTINGS YES
setenv INFOPLIST_FILE Info.plist
setenv INFOPLIST_OUTPUT_FORMAT binary
setenv INFOPLIST_PREPROCESS NO
setenv INFOSTRINGS_PATH /InfoPlist.strings
setenv INSTALL_GROUP staff
setenv INSTALL_MODE_FLAG u+w,go-w,a+rX
setenv INSTALL_OWNER lajos
setenv INSTALL_PATH /Users/lajos/Applications
setenv IPHONEOS_DEPLOYMENT_TARGET 4.0
setenv JAVAC_DEFAULT_FLAGS "-J-Xms64m -J-XX:NewSize=4M -J-Dfile.encoding=UTF8"
setenv JAVA_APP_STUB /System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub
setenv JAVA_ARCHIVE_CLASSES YES
setenv JAVA_ARCHIVE_TYPE JAR
setenv JAVA_COMPILER /usr/bin/javac
setenv JAVA_FRAMEWORK_RESOURCES_DIRS Resources
setenv JAVA_JAR_FLAGS cv
setenv JAVA_SOURCE_SUBDIR .
setenv JAVA_USE_DEPENDENCIES YES
setenv JAVA_ZIP_FLAGS -urg
setenv JIKES_DEFAULT_FLAGS "+E +OLDCSO"
setenv KEEP_PRIVATE_EXTERNS NO
setenv LD_GENERATE_MAP_FILE NO
setenv LD_OPENMP_FLAGS -fopenmp
setenv LEX /Developer/usr/bin/lex
setenv LIBRARY_FLAG_NOSPACE YES
setenv LIBRARY_FLAG_PREFIX -l
setenv LINKER_DISPLAYS_MANGLED_NAMES NO
setenv LINK_WITH_STANDARD_LIBRARIES YES
setenv LOCAL_ADMIN_APPS_DIR /Applications/Utilities
setenv LOCAL_APPS_DIR /Applications
setenv LOCAL_DEVELOPER_DIR /Library/Developer
setenv LOCAL_LIBRARY_DIR /Library
setenv MACH_O_TYPE mh_execute
setenv MACOSX_DEPLOYMENT_TARGET 10.5
setenv MAC_OS_X_VERSION_ACTUAL 1062
setenv MAC_OS_X_VERSION_MAJOR 1060
setenv MAC_OS_X_VERSION_MINOR 0602
setenv NATIVE_ARCH i386
setenv NATIVE_ARCH_32_BIT i386
setenv NATIVE_ARCH_64_BIT x86_64
setenv NATIVE_ARCH_ACTUAL x86_64
setenv NO_COMMON YES
setenv ONLY_ACTIVE_ARCH YES
setenv OPTIMIZATION_LEVEL 0
setenv OS MACOS
setenv OSAC /usr/bin/osacompile
setenv PACKAGE_TYPE com.apple.package-type.wrapper.application
setenv PASCAL_STRINGS YES
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
setenv PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIES "/usr/include /usr/local/include /System/Library/Frameworks /System/Library/PrivateFrameworks /Developer/Headers /Developer/SDKs /Developer/Platforms"
setenv PFE_FILE_C_DIALECTS objective-c
setenv PLATFORM_DEVELOPER_APPLICATIONS_DIR /Developer/Platforms/iPhoneSimulator.platform/Developer/Applications
setenv PLATFORM_DEVELOPER_BIN_DIR /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin
setenv PLATFORM_DEVELOPER_LIBRARY_DIR /Developer/Platforms/iPhoneSimulator.platform/Developer/Library
setenv PLATFORM_DEVELOPER_SDK_DIR /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
setenv PLATFORM_DEVELOPER_TOOLS_DIR /Developer/Platforms/iPhoneSimulator.platform/Developer/Tools
setenv PLATFORM_DEVELOPER_USR_DIR /Developer/Platforms/iPhoneSimulator.platform/Developer/usr
setenv PLATFORM_DIR /Developer/Platforms/iPhoneSimulator.platform
setenv PLATFORM_NAME iphonesimulator
setenv PLIST_FILE_OUTPUT_FORMAT binary
setenv PREBINDING NO
setenv PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR YES
setenv PRESERVE_DEAD_CODE_INITS_AND_TERMS NO
setenv PROFILING_CODE NO
setenv RECURSIVE_SEARCH_PATHS_FOLLOW_SYMLINKS YES
setenv REMOVE_CVS_FROM_RESOURCES YES
setenv REMOVE_SVN_FROM_RESOURCES YES
setenv RUN_CLANG_STATIC_ANALYZER NO
setenv SCAN_ALL_SOURCE_FILES_FOR_INCLUDES NO
setenv SCRIPT_INPUT_FILE_COUNT 0
setenv SCRIPT_OUTPUT_FILE_COUNT 0
setenv SDKROOT /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk
setenv SDK_DIR /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk
setenv SDK_NAME iphonesimulator4.0
setenv SED /usr/bin/sed
setenv SEPARATE_STRIP NO
setenv SEPARATE_SYMBOL_EDIT NO
setenv SET_DIR_MODE_OWNER_GROUP YES
setenv SET_FILE_MODE_OWNER_GROUP NO
setenv SHALLOW_BUNDLE YES
setenv SKIP_INSTALL YES
setenv STANDARD_C_PLUS_PLUS_LIBRARY_TYPE dynamic
setenv STRINGS_FILE_OUTPUT_ENCODING binary
setenv STRIP_INSTALLED_PRODUCT YES
setenv STRIP_STYLE all
setenv SYSTEM_ADMIN_APPS_DIR /Applications/Utilities
setenv SYSTEM_APPS_DIR /Applications
setenv SYSTEM_CORE_SERVICES_DIR /System/Library/CoreServices
setenv SYSTEM_DEMOS_DIR /Applications/Extras
setenv SYSTEM_DEVELOPER_APPS_DIR /Developer/Applications
setenv SYSTEM_DEVELOPER_BIN_DIR /Developer/usr/bin
setenv SYSTEM_DEVELOPER_DEMOS_DIR "/Developer/Applications/Utilities/Built Examples"
setenv SYSTEM_DEVELOPER_DIR /Developer
setenv SYSTEM_DEVELOPER_DOC_DIR "/Developer/ADC Reference Library"
setenv SYSTEM_DEVELOPER_GRAPHICS_TOOLS_DIR "/Developer/Applications/Graphics Tools"
setenv SYSTEM_DEVELOPER_JAVA_TOOLS_DIR "/Developer/Applications/Java Tools"
setenv SYSTEM_DEVELOPER_PERFORMANCE_TOOLS_DIR "/Developer/Applications/Performance Tools"
setenv SYSTEM_DEVELOPER_RELEASENOTES_DIR "/Developer/ADC Reference Library/releasenotes"
setenv SYSTEM_DEVELOPER_TOOLS /Developer/Tools
setenv SYSTEM_DEVELOPER_TOOLS_DOC_DIR "/Developer/ADC Reference Library/documentation/DeveloperTools"
setenv SYSTEM_DEVELOPER_TOOLS_RELEASENOTES_DIR "/Developer/ADC Reference Library/releasenotes/DeveloperTools"
setenv SYSTEM_DEVELOPER_USR_DIR /Developer/usr
setenv SYSTEM_DEVELOPER_UTILITIES_DIR /Developer/Applications/Utilities
setenv SYSTEM_DOCUMENTATION_DIR /Library/Documentation
setenv SYSTEM_LIBRARY_DIR /System/Library
setenv UID 501
setenv UNSTRIPPED_PRODUCT NO
setenv USER lajos
setenv USER_APPS_DIR /Users/lajos/Applications
setenv USER_LIBRARY_DIR /Users/lajos/Library
setenv USE_DYNAMIC_NO_PIC YES
setenv USE_HEADERMAP YES
setenv USE_HEADER_SYMLINKS NO
setenv VALID_ARCHS i386
setenv VERBOSE_PBXCP NO
setenv WRAPPER_EXTENSION app
setenv WRAPPER_SUFFIX .app
setenv XCODE_APP_SUPPORT_DIR /Developer/Library/Xcode
setenv XCODE_VERSION_ACTUAL 0321
setenv XCODE_VERSION_MAJOR 0300
setenv XCODE_VERSION_MINOR 0320
setenv YACC /Developer/usr/bin/yacc


   


make clean


./configure --disable-bzlib --disable-mmx --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --cc=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/i686-apple-darwin10-gcc-4.2.1 --as='gas-preprocessor/gas-preprocessor.pl /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/i686-apple-darwin10-gcc-4.2.1' --sysroot=/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk --extra-cflags='-fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings -O0 -fasm-blocks -Wreturn-type -Wunused-variable -D__IPHONE_OS_VERSION_MIN_REQUIRED=30000 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk -fvisibility=hidden -mmacosx-version-min=10.5 -gdwarf-2'




make


mv libavcodec/libavcodec.a i386/
mv libavdevice/libavdevice.a i386/
mv libavformat/libavformat.a i386/
mv libavutil/libavutil.a i386/
mv libswscale/libswscale.a i386/


rm lib/*.a


cp i386/*.a lib/


然后在终端中编译build_i386生成静态库即可。