【问题标题】:Undefined Symbols For Architecture x86 [duplicate]架构x86的未定义符号[重复]
【发布时间】:2017-05-28 04:56:14
【问题描述】:

我正在使用 C++ 进行编码,并且正在尝试学习静态变量。
当我写我的练习代码时,我收到了这个错误信息:

架构 x86_64 的未定义符号:
"pizza::firstLetterFavPizza",引用自:
main.o ld 中的 Pizza::favPizzaFirstLetterChan(char):未找到架构 x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

请帮忙!我不知道怎么了。源代码在这里:

#include <iostream>
class pizza
{
 public: 
    static char firstLetterFavPizza;

    char favPizzaFirstLetterChan (char letter = firstLetterFavPizza)
    {
     pizza::firstLetterFavPizza = letter;
     return pizza::firstLetterFavPizza;
    }
};

int main()
{
    pizza *a = new pizza();
    pizza *b = new pizza();
    std::cout << a->favPizzaFirstLetterChan('c') << std::endl;
    delete a;
    std::cout << b->favPizzaFirstLetterChan('b') << std::endl;
    delete b;
    return 0;
};

【问题讨论】:

    标签: c++ static


    【解决方案1】:

    您已声明静态数据成员,但未定义它。将定义添加到您的代码某处(在全局命名空间中):

    char pizza::firstLetterFavPizza;
    

    【讨论】:

      猜你喜欢
      • 2011-09-30
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-27
      相关资源
      最近更新 更多