Ios 相同静态库的两个版本在运行时冲突

Ios 相同静态库的两个版本在运行时冲突,ios,xcode,ffmpeg,static-libraries,vlc,Ios,Xcode,Ffmpeg,Static Libraries,Vlc,我使用的是ffmpeg 3.2静态库(为ios编译) 在同一个项目中,我使用了mobilevlckit,它使用ffmpeg 2.0.2静态libs,为ios编译,但配置不同。在单独的项目中,这两种方法都能很好地工作。但将它们放在一起会导致崩溃,因为静态库的名称是相同的,并且它们相互导入并获取错误的版本。有人知道怎么修吗 谢谢 您无法“修复”此问题,一个可执行文件只能定义一个静态符号。这是链接器的请求。还请注意,LGPL在链接到iOS应用程序时存在一些模糊的法律问题,您应该让律师审查您在iOS应用

我使用的是ffmpeg 3.2静态库(为ios编译) 在同一个项目中,我使用了mobilevlckit,它使用ffmpeg 2.0.2静态libs,为ios编译,但配置不同。在单独的项目中,这两种方法都能很好地工作。但将它们放在一起会导致崩溃,因为静态库的名称是相同的,并且它们相互导入并获取错误的版本。有人知道怎么修吗


谢谢

您无法“修复”此问题,一个可执行文件只能定义一个静态符号。这是链接器的请求。还请注意,LGPL在链接到iOS应用程序时存在一些模糊的法律问题,您应该让律师审查您在iOS应用程序中使用LGPG或GPL源代码的情况。请参阅动态部署MobileVLCKit或单独的FFMPEG库来解决问题。然而,首先你需要在同一个应用程序中同时使用MobileVLCKit和libavcodec,这似乎有点可疑。这是一个好方法吗?嗨,feepk,这不是一个好方法,但是vlc正在使用定制的非常旧(2.0.2)版本的ffmpeg,我需要使用ffmpeg库做一些事情,这些库不是vlc框架公开的。所以我认为我没有其他选择。嗨,沙希德,我面临着同样的问题。你找到解决办法了吗?thanksHi Harshal,我可以通过将ffmpeg静态库的Match-O类型更改为可重新定位的对象文件来实现这一点,但我在使用我为iOS编译的旧版本ffmpeg将rtmp流上载到远程服务器时遇到了问题。因此,我切换到ijkmediplayer用于iOS。它使用的是ffmpeg和ffplay的另一个版本(至少比VLC使用的版本更晚),我使用IjKmediaplayer使用的类似配置为ios编译了相同版本的ffmpeg,这为我做到了。您无法“修复”这一点,一个可执行文件只能定义一个静态符号。这是链接器的请求。还请注意,LGPL在链接到iOS应用程序时存在一些模糊的法律问题,您应该让律师审查您在iOS应用程序中使用LGPG或GPL源代码的情况。请参阅动态部署MobileVLCKit或单独的FFMPEG库来解决问题。然而,首先你需要在同一个应用程序中同时使用MobileVLCKit和libavcodec,这似乎有点可疑。这是一个好方法吗?嗨,feepk,这不是一个好方法,但是vlc正在使用定制的非常旧(2.0.2)版本的ffmpeg,我需要使用ffmpeg库做一些事情,这些库不是vlc框架公开的。所以我认为我没有其他选择。嗨,沙希德,我面临着同样的问题。你找到解决办法了吗?thanksHi Harshal,我可以通过将ffmpeg静态库的Match-O类型更改为可重新定位的对象文件来实现这一点,但我在使用我为iOS编译的旧版本ffmpeg将rtmp流上载到远程服务器时遇到了问题。因此,我切换到ijkmediplayer用于iOS。它使用的是ffmpeg和ffplay的另一个版本(至少比VLC使用的版本最新),我使用与ijkmediaplayer类似的配置为ios编译了相同版本的ffmpeg,这为我做到了这一点。