默认情况下,用MinGW/gcc 编译x264的动态库的时候只能生成libx264.dll和libx264.dll.a,这个.a文件不是标准的Win32的DLL导出函数所用到的lib格式,虽然可以修改文件名为libx264.lib,然后在VS2008中用:
#pragma comment(lib, "libx264.lib")
的方式来使用,但是由于此做法属于Hack性质的,不推荐,有可能遇到一些很诡异的错误。
比如我这边就会遇到很变态的错误:上面代码在DEBUG下可以使用,在RELEASE下就无法使用。
解决方法之一:
用 LoadLibrary() + GetProcAddress()来显式的调用x264相应的APIs
这种方式就是稍微麻烦了一点,好处是效率更高,因为比用lib的方式的隐式调用,少了一次函数跳转的开销。
解决方法之二
对最新的x264代码加入如下补丁:
----------------------------------------------------
延伸阅读:
MSVC and MinGW DLLs
http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs