Apple Mach-O-Linker 错误:在体系结构 x86-64 中找不到从(行)引用的变量
Apple Mach-O-Linker Error: Variable referenced from (line) not found in architecture x86-64
我正在为一个类项目开发一个C++程序,我正在将对象数据从文件加载到列表中。我已经设置了它,以便像在成员函数中一样完成数据读取,然后将该对象推送到列表中,然后重复,直到没有更多数据要加载。
我收到此错误:
建筑x86_64的未定义符号:
"产品::P产品(Product const&(",参考自:
标准::__1::列表 ::p ush_back(product const&( in Week-2.o
LD:找不到建筑x86_64符号
clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用(
主要功能:
Product temp;
list <Product> allProducts;
if (!temp.loadInitalData())
{
cout << "There is no Product data available. Try a different option: ";
cin >> choice;
repeat = true;
}
else {
while (temp.loadInitalData())
{
allProducts.push_back(temp); //This is where I'm getting the error
}
temp.viewMenu();
repeat = false;
}
产品的 loadInitalData(( 函数:
bool Product::loadInitalData()
{
bool moreData = true;
fstream prodDatabase;
prodDatabase.open("ProductDatabase.csv", ios::out|ios::in|ios::binary);
if (!prodDatabase)
{
cout << "File could not be successfully openedn";
moreData = false;
}
else
{
moreData = loadInitialItemData(prodDatabase);
}
return moreData;
}
我已经在我的主文件中链接了"Product.h".cpp以及.有什么建议吗?
您缺少类 Product 的复制构造函数。 有一些关于编译器何时提供规则的规则,如下所述:
http://en.cppreference.com/w/cpp/language/copy_constructor
但是,如果复制 Product 对象是一项不平凡的操作,则无论如何都可能需要编写一个。
还可以考虑将您的列表设为产品列表(即指向产品的指针列表(。 这样可以避免复制,并且很可能是您真正想要的。
相关文章:
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 多个"常量引用"变量可以共享同一个内存吗?
- 在 gtest 中初始化堆栈上的引用变量的隔离错误
- C++方法中的引用变量
- 作为赋值(增加引用变量)C++的左操作数所需的左值
- 使用更改此变量的函数在同一行中打印引用变量
- 将延迟变量分配给引用变量
- 如何通过引用获取引用变量的地址?
- 将引用变量传递给函数
- C++中引用变量的内存?
- 按名称存储和引用变量列表
- 返回一个C++引用变量 VS 返回一个变量
- c++ 在 if 语句中分配引用变量
- 引用变量何时合适,为什么?你能解释一下实际的语法和位置吗?
- C++ - 将一个变量分配给另一个变量和将变量分配给引用变量有什么区别?
- 在类范围内声明时,应在 C++14 中引用变量模板
- 当引用变量的引用"死亡"时,它会发生什么?
- 将非按引用变量分配给返回按引用的函数,反之亦然
- 引用变量如何存储在mem中
- 引用变量存储在哪里