vc++中的链接错误

Posted

技术标签:

【中文标题】vc++中的链接错误【英文标题】:Linking error in vc++ 【发布时间】:2011-12-21 15:21:29 【问题描述】:

我是 VC++ 的新手,我是第一次在 VC++ 上运行程序。 我严格按照 Microsoft Programming Visual C++ 一书中给出的说明,按照给出的说明创建了一个项目。

关于 ex03a.exe: 我在路径“...\Ex03a\Debug\”中看到,其中不存在诸如 ex03a.exe 之类的文件。

我通过执行一个简单的“Test.cpp”文件来测试我的 vc++。 我能够运行简单的 c++ 程序并得到输出。并且 Test.exe 在 '\Test\Debug\Test.exe' 中

我的问题: 我怎么能摆脱错误。

【问题讨论】:

使用完整的单词代替“pgm”和“abt”确实提高了可读性。还有,有什么问题? 哇,VC 6!过去的真正爆炸......说真的,如果您是 Visual C++ 的新手,为什么不免费下载 最新 版本呢? Visual C++ 2010 Express. @CodyGray bcz 在我的编程 vc++ 书中,他们使用 vc++ 6.0 进行教学 我有时会在 2010 版本中遇到这个问题。如果我尝试再次构建它第二次正常工作,但不知道是什么原因。 @Cody Gray 快递版本包含的库不如真实版本那么多。你不能用它来创建 MFC 程序。此外,我不认为“不使用 2010 版”是导致链接器失败的问题。 【参考方案1】:

几乎总是当 VS 说它无法打开文件时,它是关于打开它以进行写入。

而且这几乎总是不起作用,因为文件已被锁定。

这几乎总是因为该文件是当前正在运行的可执行文件:-)

这是 Windows 的一个特点 - 一个 exe 不是简单地加载的,它在所有运行时都被锁定。这可能是因为 exe 文件(实际上称为可移植可执行文件,无论出于何种原因)不仅包含代码,而且通常还包含任意数量的资源(如图像等),并且动态更改文件会使当应用程序尝试在运行时读取其中一个资源时,应用程序会严重崩溃。

因此,我建议寻找一种方法来退出/关闭/终止应用程序,使其不再运行,因此文件不再被锁定,因此在这种情况下链接器可以完成它的工作。

顺便说一句,从我的角度来看,错误消息并不是那么直观——这个问题是标准的,它至少可以尝试告诉你关于这个问题的可能根源的任何事情——afaik,这还没有改进到现在,可能是因为大多数开发人员以前都看到过这种情况,发现了它发生的原因,因此不再有任何问题。

【讨论】:

【参考方案2】:

我在该屏幕截图中看到,您正在运行多个版本的 VC6。

现在,如果您运行该程序新编译的 exe 而不关闭之前编译的 exe,您会收到该错误。

VC 尝试覆盖当前正在运行的 exe,但遇到了确切的错误。

完成后始终关闭程序。

【讨论】:

我只看到一个 VC 6 实例。另一个是 VS 2005 或 2008。但也许他也打开并运行了相同的项目文件。

以上是关于vc++中的链接错误的主要内容,如果未能解决你的问题,请参考以下文章

我收到一个链接器错误,我不理解 VC++ 和 FLTK [关闭]

std::exception::_Raise 和 std::exception::exception 上的 VC++ 链接器错误

MS VC++ 2010的这个链接器错误是啥意思[重复]

在vc调试期间查找源代码中的错误位置

带有 Qt/boost 项目的 VC xtree 内部标头中的语法错误

将 x86 转换为 x64 发生链接错误(2019)