Skip to content

Archive

Tag: MinGW
MinGW-w64是另一组人做的修改版GCC,比起原先的MinGW,它的好处是可以编译出x64和x86的Windows程序,而且对Windows API的支持更好。原先用MinGW编译KlayGE的时候,需要对MinGW的头文件(或者说w32api的头文件)做一些修改,才能完成。如果用MinGW-w64,会不会好些呢? 版本的选择 和其他第三方的MinGW一样,由于选项的不同,MinGW-w64在Windows上其实有多个不同的版本。C++ Exceptions有DWARF、SJLJ、SEH三种处理方式;GCC Threading Model有Win32和Posix两种实现;编译器本身还分Win32和Win64的,虽然都可以交叉编译出x86和x64的代码。这些方式组合爆炸后,最终的binary版本就眼花缭乱了。我这里测试的是x32-4.8.1-release-win32-sjlj-rev ...
用MinGW编译DShow的东西,经常遇到没找到IBaseFilter的问题。本质上是MinGW的w32api并没有提供完整的DShow头文件所致。经过一番折腾,得到了下面的解决方案: 1. 从http://sourceforge.net/projects/mingw-w64/下载mingw-w64-headers,我这里用的是mingw-w64-headers-20100717.tar.xz 2. 把mingw-w64-headersinclude目录下的strmif.h、rpcndr.h、uuids.h、ksuuids.h、control.h拷贝到MinGWinclude,覆盖原有文件。 3. 打开strmif.h,删掉所有"__MINGW_EXTENSION"。 4. 打开rpcndr.h,删掉所有"__MINGW_EXTENSION",并在第81行"typedef int ssize_t;"的前后分别加上"#ifdef _SSIZE_T_"和"#endif"。 5. 打开vmr9.h,查找"MixerPref9_Rende ...