最近这段时间在研究ffmpeg在IOS项目中的实际应用,遇到了已下几个问题,都是在编译的时候出现的,现在分享给大家,因为我在网上也尝试找过各种解决方法,但是大部分文章都是你转我的、 我转你的,几乎都一样,设置了那几个东西都没用
现在我把我自己实际运用过程中遇到的问题跟大家做分享:
1.include头文件的时候报无法找到该头文件
首先我把ffmpeg的所有.a文件还有头文件都导入了工程内,这时候编译是能通过的,但是在C的类里面引用头的时候,编译不过并且当时就报了错,这时候的错误一般都是编译器没有读取到头文件的路径,解决方法就是重新设置下Head Search Path,在Target 的BuildSettings里面搜索下Head Search Paths,将头文件的路径目录写入,这个时候一定要注意路径目录是否正确
2.调用C函数系统报linker command failed with exit code 1错误
与第一个问题类似,这种问题的关键在于头文件里面有函数定义,但是编译器链接库失败,具体的库链接问题同样是在
Target 的BuildSettings里面Search Paths里面的Libray 项里面,同前一个问题一样将库的路径目录写入
3.在OC中引用C函数的时候报Undefined Symbol错误
这个问题应该是三个里面最不常见的问题,为了这个问题我也上网搜索了很多的解决方式,但是都通通无效,包括又重新看了一下如何在OC中构建C文件和引用C函数,然后挨个步骤对照我的项目代码,但是还是没有找到解决方案,这个问题困扰了我很久,当时也没人指引我,后来经过同事的一般点播,才大彻大悟
那就是在OC中引用C函数的时候要对C函数进行目标修饰-----》extern "C" {},关于extern的问题大家可以去搜下,网上见解太多了,将C函数的头文件放入修饰中,然后编译就OK了,完美通关
以上就是个人实际开发中遇到的问题和解决的方案,希望对大家有用
--------------------------------------------------OVER-------------------------------------------------------