visual-c++ - VC++ 8.0 程序出现链接器错误 : Precombiled Library VC++ 6. 0

标签 visual-c++ linker microsoft-runtime-library

我正在尝试为新系统重新编译一些代码。它涉及一个预编译的静态库,我没有源代码(只有头文件),并且该库是使用 VC++ 6.0 或更早版本以及较旧的运行时库构建的。在我的旧系统上,它有 VC++ 6.0,我的程序构建并运行良好,但我最近升级了一些东西,我不再能够访问 VC++ 6.0,只能访问 Express 2008(9.0 w/SP)。

当我构建解决方案时,它可以编译,但出现以下链接器错误:

1>libcpmtd.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ) already defined in NOREC.lib(track.obj) 1>LIBCMT.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::bad_cast::bad_cast(char const *)" (??0bad_cast@std@@QAE@PBD@Z) already defined in NOREC.lib(track.obj) 1>LIBCMT.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::bad_cast::bad_cast(class std::bad_cast const &)" (??0bad_cast@std@@QAE@ABV01@@Z) already defined in NOREC.lib(track.obj) 1>LIBCMT.lib(stdexcpt.obj) : error LNK2005: "public: virtual __thiscall std::bad_cast::~bad_cast(void)" (??1bad_cast@std@@UAE@XZ) already defined in NOREC.lib(track.obj) 1>LINK : fatal error LNK1104: cannot open file 'libcp.lib'

任何如何克服这个问题的想法都非常受欢迎。

最佳答案

从上次链接错误开始,找不到libcp.lib。从 VS 2005 开始,该库已被删除。对于多线程版本,请使用 /MT

http://msdn.microsoft.com/en-us/library/abx4dbyh%28v=vs.80%29.aspx

多线程版本是libcpmt.lib,您将通过/MT标志自动获得它。我在第一个错误中看到您正在使用 libcpmtd.lib 这是其调试版本。如果您不使用 /MTd,我不确定您如何得到它。 (或者如果是的话,如何引用 libcp.lib 因为您应该使用其中之一,而不是两者)

关于visual-c++ - VC++ 8.0 程序出现链接器错误 : Precombiled Library VC++ 6. 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10823685/

相关文章:

compilation - 如何编译包含 LLVM API 头文件的 C++ 程序?

c++ - Microsoft Visual Studio ~ C/C++ Runtime Library ~ 静态/动态链接

c++ - ATL COM 是开发 IE7 或更高版本插件/扩展的唯一途径吗?

c++ - 类间内存分配重合

c++ - 错误 : Vector subscript out of range. 第 1201 行

c++ - 链接器和图书馆员中的 VC++ 2012 Additional Dependencies 选项

c++ - 命名空间函数的链接

c# - VS2008安装包自动包含运行时库/框架

gcc - 如何更改 MinGW 的规范文件以链接 MSVCR100.dll 和 MSVCP100.dll?

c++ - 这两者在位操作方面有什么区别?