zoukankan      html  css  js  c++  java
  • 编译DirectShow程序时出现Link Error可以考虑的情况

    最近在编译旧DirectShow SDK中的Contrast例子的时候出现了Link Error,花了几个小时,才解决掉这个问题,记录在这里,希望能给大家帮助。

    一般情况下,参考下面两个网址应该可以解决掉大多数Link Error了:

    http://topic.csdn.net/t/20041118/17/3565951.html
    http://blogs.msdn.com/vsdteam/archive/2005/11/16/linker_error_lnk2019_lnk2001.aspx

    不过我的情况比较特殊,我是下载了最新的
    Windows SDK: 6.0.6001.18000.367-KRMSDK_EN.iso
    和DirectX SDK: dxsdk_march2008.exe

    然后用最新的baseclass的lib来编译旧的例子,而且更要命的是我还是在旧的SDK的结构(实际上也就是使用旧的SDK baseclass header)下编译例子,这样导致无论如何都会有
    Link Error,在花了几个小时排除掉是环境配置的问题之后,我才意识到是旧的baseclass和新的baseclass之间的区别,更确切的说是新的baseclass使用了新的Header Annotations导致
    编译器在生成函数声明的时候与以前有所不同,导致Link时无法找到对应的lib项目,所以出现了Link Error。

    对于这种情况,其实最简单的办法就是把旧的例子拷贝到新SDK对应的目录下,然后编译去掉一些小的错误就可以了。

    BTW: 如果新SDK有Contrast这个例子也就不用害的我搞了一夜了,sigh...

    20080520 update:

    http://www.directshow.cn/forum/viewthread.php?tid=3381&extra=page%3D1
    1>CFilterASFWriter.obj : error LNK2019: unresolved external symbol "public: __thiscall CPosPassThru::CPosPassThru(char const *,struct IUnknown *,long *,struct IPin *)" (??0CPosPassThru@@QAE@PBDPAUIUnknown@@PAJPAUIPin@@@Z) referenced in function "public: virtual long __stdcall CFilterASFWriter::NonDelegatingQueryInterface(struct _GUID const &,void * *)" (?NonDelegatingQueryInterface@CFilterASFWriter@@UAGJABU_GUID@@PAPAX@Z)

    这个问题咋一看就是字符集问题,可真拿来编译一下,还被绕进去了,幸好对VC的各项设置还算熟悉,最后还是解决了这个问题,居然还是个bug,有点怀疑的,不过不敢确认,还是最后找到了权威的回答,才确认。
  • 相关阅读:
    币圈寒冬,过去两周内全球约60万矿商关机
    币圈人警惕!5大错误足以摧毁你的一切
    Doctype作用?标准模式与兼容模式各有什么区别?
    递归
    anguments
    fixed 和 absolute 定位的区别
    SublimeText 自带格式化代码功能
    css布局-双飞翼布局
    CSS布局-圣杯布局
    品字布局
  • 原文地址:https://www.cnblogs.com/s5689412/p/1202134.html
Copyright © 2011-2022 走看看