使用MinGW编译libx264 - 缺少__umoddi3,__udivdi3,_fseeko64和__chkstk_ms
我愿意在我的Windows项目中使用x264,所以我使用MinGW和gcc将源代码构建为静态库。使用MinGW编译libx264 - 缺少__umoddi3,__udivdi3,_fseeko64和__chkstk_ms
库和头部包含正确,唯一的问题是,现在连接器抱怨,因为__umoddi3,__udivdi3,_fseeko64和__chkstk_ms。看起来这个函数是一些标准库的一部分,但是我可以在Windows中找到它?
谢谢。
我不会在这里复制/过去完整的答案,但你应该阅读这个topic at doom10.org 总之,你不能在MSVS中直接使用MinGW编译的.a库(静态或共享)。您需要编译libx264.dll,并从.def文件制作MSVS特定的.lib库,并使用该库进行链接。
或在msvs中编译 –
@David x264无法在MSVS中编译,因为它的C编译器不完全支持C99。所以这不是选项。您需要将英特尔C编译器(ICL)编译为MSVS或重新编写使用C99功能的x264部分。 – nobody555
您已经在MinGW中编译了一个静态库,并正在尝试在Visual Studio中使用它。这是行不通的。为了使用静态库,它必须使用相同的编译器进行编译,并针对相同的运行时和使用它的程序进行编译。
如果您将此设置为静态库,那么您必须在Visual Studio中编译x264源代码。
你可以在编译/链接过程中尝试-lgcc吗? –
是的,不幸的是,没有任何区别。 –
对不起,怎么样-lmsvcrt -lgcc? –