编译器错误:架构x86_64的未定义符号

问题描述:

当我尝试编译时,出现这个奇怪的错误。编译器错误:架构x86_64的未定义符号

为架构x86_64的未定义符号: readRecipe(std::basic_istream<char, std::char_traits<char> >&, std::basic_ostream<char, std::char_traits<char> >&, Cookbook&),从引用:在cclDKibb.o _main LD:符号(多个)未找到架构x86_64的 collect2:LD返回1退出状态

这是函数它指的是:

void readRecipe(std::ifstream &istr, std::ofstream &ostr, Cookbook &cookbook) 
{ 
    int units; std::string name, name2; 
    // Read recipe name. 
    istr >> name; 

    // Build the new recipe Recipe r(name); 

    while (1) 
    { 
     istr >> units; 
     if (units == 0) 
      break; 
     assert (units > 0); 

     istr >> name2; 
     Ingredient i(name2, units); 
     r.addIngredient(i); 
    } 

    // Add it to the list. 
    if (cookbook.addRecipe(r, ostr)) 
     ostr << "Recipe for " << name << " added" << std::endl; 
    else 
     ostr << "Recipe for " << name << "already exists" << std::endl; 
} 

任何想法?

+1

显然你忘了提供链接器与该函数的编译版本 – 2013-02-28 20:49:07

我想通了。我的功能原型搞糟了。