如何使用gnu make开发(甚至开始使用)MS DirectShow应用程序?

时间:2012-01-23 13:49:17

标签: makefile directshow gnu

我试图使用gnu make而不是在Visual Studio / nmake中构建DirectShow BaseClasses(在C:\ DXSDK \ Samples \ C ++ \ DirectShow \ BaseClasses之类的目录中),但我没有运气。 SDK可以下载here

This是一个类似的问题,但答案是针对VS环境的。

如果您熟悉使用gnu make工具开发Microsoft DirectShow应用程序(特别是构建基本类),而不是微软提供给你的桌子上的繁琐设备,请帮忙!

编辑:我最终放弃使用任何“非MS”方式在MS'框架下开发。

1 个答案:

答案 0 :(得分:0)

我不确定为什么你认为微软的工具很麻烦。命令行和Visual Studio工具对我来说非常适合在过去构建strmbase.lib。事实上,我似乎记得只是在Windows SDK中安装,导航到DShow库并输入“build”来实现它。

使用自定义构建环境编译strmbase.lib:

只需创建一个Makefile,就像从源代码中创建任何其他代码库(.lif)一样。使用指向Windows SDK目录的include路径单独编译所有.cpp文件。 (即包含头文件的目录)。然后将编译后的源文件中的所有目标文件打包到库存档中。

可选:对于调试版本,只需确保通过Makefile定义了_DEBUG和DEBUG。 (避免定义一个而不是另一个的情况)。 streams.h顶部的一些逻辑为您处理。

可选:如果你想要unicode字符串,你应该通过你的Makefile定义_UNICODE和UNICODE(同样的事情 - 避免定义一个而不是另一个的情况)。如果你没有在Makefile中定义,那么你不必担心这一步。

此外,如果我记得,其中一个文件与ATL中的定义冲突存在一些问题。如果你点击它,很容易修复。

我不确定你认为的其他lib文件是什么。也许strmiids.lib?如果您还没有在Windows SDK lib路径中使用它,那么使用一些INITGUID定义很容易生成它。