Qt for IOS环境的搭建以及ffmpeg库的编译与移植

最新版的Qt5.6.0 for IOS,需要xcode7以上的版本,而只有OS X10.11以上才有安装,所以这里选择OS X10.11版本的系统。
系统环境: MAC OSX10.11  VMware12以上(必须的)
软件环境:Qt5.6.0 for IOS, XCode7(从OSX系统的苹果商店下载)

一、平台搭建
MAC OSX系统的安装:   VMware 12安装Mac OS X 10.11
Qt5.6.0 for IOS安装:官网下载后,直接点击安装
XCode7安装:通过AppStore安装
VMware12安装:下载后直接安装
上述系统和软件安装完成后,下面就可以开发自己的APP软件。

二、ffmpeg等库的编译
1)ffmpeg的编译, 分别为MAC版本和IOS版本。
     MAC版本:
     git下载ffmpeg官方源码后,进入ffmpeg主目录,
     ./configure --prefix=build_ffmpeg(编译目标目录,自己先创建的)
     make & make install
     即可生成可以在MAC OSX上使用的ffmpeg动态库
     IOS版本: https://github.com/kewlbear/FFmpeg-iOS-build-script,里面赋有编译步骤,最后会得到ffmpeg的静态库。

三、移植到Qt for IOS中
     1)MAC端:
     pro添加内容,并将所需库复制到工程目录下。
     macx {
         LIBS += -L"$$PWD/ffmpeg/libs/mac"
         LIBS += -lavformat -lavformat.57 -lavformat.57.36.100 -lavdevice -lavdevice.57 -lavdevice.57.0.101 -lavfilter -lavfilter.6 \
                 -lavfilter.6.45.100 -lavutil -lavutil.55 -lavutil.55.24.100 -lswresample -lswresample.2 -lswresample.2.0.101 \
                 -lswscale -lswscale.4 -lswscale.4.1.100 -lavcodec -lavcodec.57 -lavcodec.57.42.100
     }

    2) IOS端:
     pro添加内容,并将所需库复制到工程目录下。
     
     ios {

         LIBS += "$$PWD/ffmpeg/libs/ios/ios_simulator/libavformat.a" \
                      "$$PWD/ffmpeg/libs/ios/ios_simulator/libavdevice.a" \
                      "$$PWD/ffmpeg/libs/ios/ios_simulator/libavfilter.a"   \                                     
                     "$$PWD/ffmpeg/libs/ios/ios_simulator/libavutil.a"  \
                     "$$PWD/ffmpeg/libs/ios/ios_simulator/libswresample.a" \
                     "$$PWD/ffmpeg/libs/ios/ios_simulator/libswscale.a"    \
                     "$$PWD/ffmpeg/libs/ios/ios_simulator/libavcodec.a"

         LIBS += "$$PWD/ffmpeg/libs/ios/ios_simulator/xcode_simulator_lib/libbz2.tbd" \
                      "$$PWD/ffmpeg/libs/ios/ios_simulator/xcode_simulator_lib/libbz2.1.0.tbd"  \
                       "$$PWD/ffmpeg/libs/ios/ios_simulator/xcode_simulator_lib/libz.1.tbd"  \
                      "$$PWD/ffmpeg/libs/ios/ios_simulator/xcode_simulator_lib/libz.tbd"  \
                      "$$PWD/ffmpeg/libs/ios/ios_simulator/xcode_simulator_lib/libz.1.2.5.tbd" \
                      "$$PWD/ffmpeg/libs/ios/ios_simulator/xcode_simulator_lib/libz.1.1.3.tbd" \
                     "$$PWD/ffmpeg/libs/ios/ios_simulator/xcode_simulator_lib/libiconv.2.4.0.dylib" \
                     "$$PWD/ffmpeg/libs/ios/ios_simulator/xcode_simulator_lib/libiconv.2.dylib" \
                    "$$PWD/ffmpeg/libs/ios/ios_simulator/xcode_simulator_lib/libiconv.dylib"

          LIBS += -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks             -framework VideoToolbox
         LIBS += -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks -framework CoreMedia
         LIBS += -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks -framework CoreVideo
}
    如上所示,除了必须的ffmpeg静态库外,还需要
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib下的-lbz2 -lbz2.1.0 -lz.1 -lz -lz.1.2.5 -lz.1.1.3 -liconv.2.4.0 -liconv.2 -liconv等动态库文件(这是IOS模拟器的路径,如果是真机则用iPhone目录的lib文件),还有框架库VideoToolbox、CoreMedia、CoreVideo,这些都是需要的,不然编译会出如下所示,通过查看qmake编译过程,可以知道这些库是否已经连接上:
      Undefined symbols for architecture x86_64:
 
 "_CMBlockBufferCreateWithMemoryBlock", referenced from:
      _videotoolbox_common_end_frame in libavcodec
.a(videotoolbox.o)
 
 "_CMSampleBufferCreate", referenced from:
      _videotoolbox_common_end_frame in libavcodec
.a(videotoolbox.o)
 
 "_CMVideoFormatDescriptionCreate", referenced from:
      _av_videotoolbox_default_init2 in libavcodec
.a(videotoolbox.o)
  "_ModPlug_GetCurrentOrder", referenced from:
三、编译运行
     MAC端:选择Qt for IOS的Destop编译器
     IOS端:选择iphonesimulator编译器
     程序编译成功后,开始运行即调用Xcode目录下的虚拟机,将程序安装到上面。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱技术爱生活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值