• vs工程链接出现error LNK2005...already defined


    今天使用vs2008编译工程无错误,链接过程,出现很多这样的错误:

    error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in msvcprtd.lib(MSVCP90D.dll)

    这个错误,提示的意思应该是标准库的类已经被定义过了,但找了半天也没发现哪里重复定义,后来发现,原来我的工程使用的是lib库,而vs2008的工程设置的代码生成方式是dll库:

    在property->configure->c/c++->code generation->runtime library

    将Multi-threaded Debug DLL (/MDd)

    改为Multi-threaded Debug (/MTd)

  • 相关阅读:
    输出流
    异常处理
    异常限制
    多个受控异常
    跟踪异常传播
    动手动脑练习2
    动手动脑练习
    文件总结
    程序员修炼之道3
    Shell教程 之printf命令
  • 原文地址:https://www.cnblogs.com/jiangwang2013/p/3696615.html
Copyright © 2020-2023  润新知