为了账号安全,请及时绑定邮箱和手机立即绑定

什么是“无法解析的外部符号” 一般是由什么原因引起的

什么是“无法解析的外部符号” 一般是由什么原因引起的

C++
MOCKINGT 2017-10-05 14:10:41
查看完整描述

2 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

一般由缺少相应的链接库引起。

所谓“外部符号”就是值定义在本代码之外的那些符号。代码中有可能引用定义在别的代码中名字(别的变量、函数什么的),这样本代码中并没有它们的实际定义(如函数的实现就不在本代码中)。 

代码在编译之后进行链接时,链接器需要知道这些名字真正定义在哪里。 比如:你自己写的函数的实现在含有该函数定义的代码中;使用的库函数的实现在编译环境提供的链接库中。

总之,如果到时候缺少这些,链接器就会报这个错。也就无法成功链接。

查看完整回答
1 反对 回复 2017-10-05
  • MOCKINGT
    MOCKINGT
    可以询问一下这个是因为什么引起的吗,default constructor closure是析构函数吗?
  • onemoo
    onemoo
    这是默认构造函数
?
MOCKINGT

TA贡献1条经验 获得超0个赞


//img1.sycdn.imooc.com//59d5db7200013b5810800051.jpg

class Edge
{
public:
    Edge(int nodeindexA = 0,int nodeIndexB = 0,int value = 0);  // 全部初始化

    int m_iNodeIndexA;
    int m_iNodeIndexB;
    int m_ivalue;
    bool m_bSelected;
};

Edge::Edge(int nodeIndexA = 0, int nodeIndexB = 0, int value = 0)
{
    m_iNodeIndexA = nodeIndexA;
    m_iNodeIndexB = nodeIndexB;
    m_ivalue = value;
    m_bSelected = false;
};


查看完整回答
反对 回复 2017-10-05
  • onemoo
    onemoo
    把Edge::Edge函数定义中参数的默认值去掉,一般参数默认值只写在函数声明中。
  • 2 回答
  • 0 关注
  • 1847 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信