标题:求教:生成时出现“LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文 ...
只看楼主
wcsnf609
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-12-19
结帖率:0
已结贴  问题点数:20 回复次数:6 
求教:生成时出现“LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”
工程是《Visual C++2010入门经典》中的ex8_01,用的是C++ win32控制台应用程序。程序源码如下:
// Ex8_03.cpp
// Exercising the overloaded 'greater than' operator
#include <iostream>                      // For stream I/O
using std::cout;
using std::endl;

class CBox                               // Class definition at global scope
{
  public:
   
    explicit CBox(double lv = 1.0, double wv = 1.0, double hv = 1.0): m_Length(lv), m_Width(wv), m_Height(hv)
    {cout << endl << "Constructor called.";}   // Constructor definition

    double Volume() const                      // Function to calculate the volume of a box
    {return m_Length*m_Width*m_Height;}

    bool operator>(const CBox& aBox) const;    // Overloaded 'greater than'

    ~CBox()                                    // Destructor definition
    {cout << "Destructor called." << endl;}

  private:
    double m_Length;                          // Length of a box in inches
    double m_Width;                           // Width of a box in inches
    double m_Height;                          // Height of a box in inches
};

// Operator function for 'greater than' that
// compares volumes of CBox objects.
bool CBox::operator>(const CBox& aBox) const
{return this->Volume() > aBox.Volume();}

int main()
{
  CBox smallBox(4.0, 2.0, 1.0);
  CBox mediumBox(10.0, 4.0, 2.0);
  CBox bigBox(30.0, 20.0, 40.0);

  if(mediumBox > smallBox) cout << endl << "mediumBox is bigger than smallBox";

  if(mediumBox > bigBox) cout << endl << "mediumBox is bigger than bigBox";
  else cout << endl << "mediumBox is not bigger than bigBox";

  cout << endl;
  return 0;
}
先老师们求教,特此致谢!
搜索更多相关主题的帖子: definition 应用程序 include public double 
2014-02-27 14:55
wcsnf609
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-12-19
得分:0 
向老师们求教
2014-02-27 14:57
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:20 
vs2012

========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
至于生成后的 exe  能否按期运行  就不知道了

DO IT YOURSELF !
2014-02-27 15:06
wcsnf609
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-12-19
得分:0 
1>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
1>
1>生成失败。
1>
1>已用时间 00:00:01.26
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
2014-02-28 15:33
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
你为啥不说你的IDE呢  也许你的IDE有问题呢

DO IT YOURSELF !
2014-02-28 15:42
wcsnf609
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-12-19
得分:0 
问题解决了,方法来自以下链接http://bbs.,是一位“zhoudongao”大师给出的方法,在此向大师致谢,并将方法原样复制在下面,以便遇到同样问题的朋友参考。

终极解决方案:
VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次。
在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资料,解决方案为:
第一步:与上相同。
第二步:将 项目|项目属性|配置属性|连接器|清单文件|嵌入清单 “是”改为“否”。
第三步:一般计算机经过上两步设置就能解决问题了,但是如果还有问题,那就按一下方法解决:
计算机是否为64bit操作系统,如是,继续2。
查找是否有两个cvtres.exe。一个是C:\Program Files(x86)\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe, 另一个是C:\Windows\\Framework\v
4.0.30319\cvtres.exe。右键属性|详细信息 查看两者版本号,删除/重命名较旧的版本,或者重新设置Path变量。

意外的是,治本的办法是第三步,删除旧版本的cvtres.exe后,就不需要每次都设置配置了。
2014-02-28 16:32
wcsnf609
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-12-19
得分:0 
一并感谢关注过此问题的老师们。
2014-02-28 16:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-427760-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.142704 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved