我在主程序中链编自己写的一个静态库,结果主程序编译时报错如下:LIBCMTD.lib(strcat.obj) : error LNK2005: _strcpy already defined in msvcrtd.lib(MSVCRTD.dll)请问是怎么回事,如何解决?十万火急,在线等待!

解决方案 »

  1.   

    是不是你的静态库里定义了strcpy函数?
    如果是这样的话,而且你不要使用标准C的相关函数,在vc里你可以改变编译选项,使其不使用默认的库。具体情况,你可以在MSDN索引中键入CL,查看相关编译选项。
      

  2.   

    你自己的库里定义strcpy了吧
      

  3.   

    建议先忽略掉msvcrtd.lib试试:
    #pragma comment(link, "/NODEFAULTLIB:msvcrtd.lib")
      

  4.   

    project\setting\link加入选项:
    /FORCE 或者/FORCE:MULTIPLE 
    一定可以
      

  5.   

    为你的静态库加上namespace,这样就不怕重名了,使用时用using namespace youlib;即可。