所以,我正在读这本书:C++ GUI Programming with Qt 4, Second Edition by Jasmin Blanchette; Mark Summerfield,为了学习 GUI 编程。在按照本书的步骤创建一个简单的电子表格应用程序时,我得到了一个“未定义的引用” 尝试编译电子表格小部件时出错。
所有错误似乎都源于 Cell *Spreadsheet::cell(int row, int column)
函数:
Cell *Spreadsheet::cell(int row, int column) const
{
return static_cast<Cell *>(item(row, column));
}
这是第一个从 spreadsheet.cpp 提示的函数
QString Spreadsheet::formula(int row, int column) const {
Cell *c = cell(row, column);
if (c) {
return c->formula();
} else {
return "";
}
}
行 Cell *c = cell(row, column);
发送错误:/home/axel/QtSDK/Code/Spreadsheet/spreadsheet.cpp:-1: error: undefined reference到 `Cell::Cell()'
在调用 cell(row, column)
的任何地方都会发生这种情况。该函数本身在私有(private)部分的 spreadhseet header 中定义为:Cell *cell(int row, int column) const;
抱歉,如果它看起来很乱,我是 C++ 编程的新手。
这是我的 .pro 文件
TEMPLATE = app
CONFIG += console
CONFIG += qt
SOURCES += main.cpp \
spreadsheet.cpp
HEADERS += \
spreadsheet.h
如果我遗漏了什么,我会尽快添加。
谢谢, 阿克塞尔
最佳答案
Cell
的定义没有上课。应该是cell.h
至少它应该包含在 spreadsheet.cpp 中或者它的代码可以直接包含在 spresheed.h
中或 .cpp
这是不太可能的。无论如何,错误意味着缺少 Cell
构造函数。
关于c++ - 调用定义函数时在QT Creator中获取 "undefined reference",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9643451/