请教个问题,VC7,WIN2K环境
我的程序动态链接MFC dll的时候编译没有问题
但选择静态链接MFC dll时报错
test error LNK2005: "void * __cdecl operator new(unsigned int)" 
(??2@YAPAXI@Z) 已经在 libcpmtd.lib(newop.obj) 中定义
其实就是某个.CPP文件使用了一下new来申请内存。然后将libcpmtd改为单线程、单线程调试等DLL版本仍然报错。但是动态链接却可以通过?为什么呢?
还有就是动态链接中DEBUG版本可以通过,RELEASE版本也要报同样的问题。希望朋友们帮忙解惑!谢谢!

解决方案 »

  1.   

    to  iGray(i_冲锋陷阵):
    >不包含这个libcpmtd.lib编译呵呵,那包含哪个运行时库?我上面说过静态编译时,选择单线程、单线程调试libc的库都不行
      

  2.   

    Project->Setting->Link->Input->Ignore Libaries写上libcpmtd.lib确定后编译
    -------------------------------------------------------
    MyCSDN - CSDN离线数据浏览工具。(恒金软件出品)  
    可下载论坛文件、文档文章和全文搜索论坛数据以供离线浏览。支持签名回复。
    下载地址:http://nj.onlinedown.net/soft/6591.htm
      

  3.   

    to  zx_sanjin((恒金软件):
    "
    Project->Setting->Link->Input->Ignore Libaries写上libcpmtd.lib确定后编译
    "
    先谢谢你的回答。这个方法不行,我试过的,忽略了LIBC库之后会有许多符号无法解析。
    必须要链入一个LIBC,问题是无论链入哪个版本的LIBC都会有我提到的问题。
      

  4.   

    静态链接错误,动态链接可以通过,这种情况经常能遇到吧,感觉有些不太理解,关注一下
    我一般都用动态release,编译