工程是一个dll,以前的运行库是MD,想在工程里添加opencv静态库,但是编译的时候出现了好多多重定义的符号,opencv静态库是没有问题的,在其他工程里可以使用,就在这个dll工程里没法用。(忽略掉出现多重定义符号的库之后会出现大量无法解析的外部符号,msvcprt.lib,libcpmt.lib)后来听说要把运行库改成MT,试了一下,结果是就算去掉opencv也编译不过,比如我有一个qyPipe.cpp,编译的时候就提示qyPipe.obj 里有无法解析的外部符号

解决方案 »

  1.   

    项目属性 -> linker ->input->ignore special default library
      

  2.   

    这样不行的。必须统一到一种线程模式。md就是全部都要md,mt就必须全部都是mt。要不然就根本编不过。
      

  3.   

    我给你的建议是,统一用一种方式,因为即使你忽略掉某些库的加载,也会存在其它的隐患,你干脆使用动态的OPENCV库
      

  4.   

    唉...其实是我之前忽略了libcpmt.lib造成的,不忽略它就好了
    我现在什么都没忽略...