带有本地创建对象的gcc未定义引用
gcc undefined reference with local created Objects
我是c++的新手,当我创建任何本地对象时,我在windows下使用GCC编译,编译器会发出错误消息"未定义的本地引用"我想创建如下代码所示的工厂函数错误消息:"未定义对`Widget::Widget()'的引用"
class Widget
{
public:
Widget();
virtual ~Widget();
int data() { return data_; }
void setData(int val) { data_ = val; }
protected:
private:
int data_;
};
Widget* createWidget()
{
Widget* w = new Widget();
return w;
}
int callSomething(Widget* widget,Signal* sig,int x)
{
return 0;
}
int main()
{
callSomething(createWidget(),createSignal(),4);
}
undefined reference to x
告诉您尚未定义函数x
,但您正在尝试调用它。编译器是对的:
您尚未定义Widget
构造函数。
如果只需要一个空构造函数,请将Widget();
替换为Widget() {}
;如果不需要用户定义的构造函数,请删除Widget();
。
[SOLVED]我真的很用,CodeBlocks和GCC编译器,当我关闭编辑器然后打开同一个项目然后编译时,问题来自环境。它编译成功了,我不知道发生了什么,感谢每一个身体
相关文章:
- "未定义对'WinMain@16'的引用"gcc 编辑器中的错误
- 在使用 GCC 4.8.5 构建的应用中对 cxx11 函数的未定义引用
- Cygwin下的gcc 9.3.0预处理器:cmdline -Dname,但名称似乎未定义
- 当它们不与GCC和CMAKE一起使用时,如何解析未定义的引用
- 未定义的行为或 gcc 优化错误
- GCC ARM 交叉编译,像未定义的引用"__cxa_end_catch@CXXABI_1.3"这样的错误表示什么?
- 依赖GCC/LLVM的"-fexceptions"在技术上是未定义的行为吗?
- 使用 abi:cxx11 的 GCC 未定义引用
- 使用 gcc 编译和使用 clang 编译代码时未定义的引用
- 未定义的引用指针的变量模板在clang中功能,而不是GCC
- C 17 GCC编译器为什么会发出有关未定义的警告
- Linux Flex gcc 编译失败,并显示"未定义对 'TclReError'的引用"
- C++,wxWidgets,TDM-GCC编译器:驱动器H:中对WinMain的未定义引用
- 从GCC 4.6更改为4.7时未定义的参考
- 无法使用 GCC 构建 C 应用程序,因为未定义对'deflateEnd'的引用
- fedora上的gcc链接器错误:未定义的引用
- 带有本地创建对象的gcc未定义引用
- 构造函数中x86_64的 GCC 未定义符号C++体系结构
- gcc 未定义对 'std::ios_base::Init::Init()' 的引用
- gcc - 未定义的引用,但库包含匹配的符号