对“Class::Class()”的未定义引用

2023-12-29

我正在编写一个GTKmm窗口程序;主窗口创建两个按钮,一个用于英语,一个用于中文。用户可以单击该按钮以显示适当语言的不同窗口。目前,我在初始化主窗口内的多项目容器时遇到问题。它是一个MainWindowPane类型的对象,它继承了Gtk::HBox。

当我尝试 make 时,编译器发出以下错误:

$ make 
g++ -g `pkg-config gtkmm-2.4 --cflags` -c MainWindow.cpp  
g++  -g -o QPI_frontend main.o MainWindow.o StartButton.o `pkg-config gtkmm-2.4 --libs`  
MainWindow.o: In function `MainWindow':  
/home/dmurvihill/Documents/QPI_frontend/MainWindow.cpp:9: undefined reference to   `MainWindowPane::MainWindowPane()'  
/home/dmurvihill/Documents/QPI_frontend/MainWindow.cpp:9: undefined reference to  `MainWindowPane::MainWindowPane()'  
collect2: ld returned 1 exit status  
make: *** [QPI_frontend] Error 1  

我正在使用最新版本的 gcc 和 pkg-config 来包含正确的库。我也是一个java人。

/*
 * MAIN_WINDOW.H
 * Responsible for creating "slave" RSED windows. Can create English or Chinese
 * versions of the demo, and can destroy them all with one click.
 */  
#ifndef MAINWINDOW_H  
#define MAINWINDOW_H  

#include <gtkmm/window.h>

//#include "SlaveWindow.h"
#include "StartButton.h"
#include "MainWindowPane.h"

class MainWindow : public Gtk::Window
{
public:
    MainWindow();   
private:
    MainWindowPane pane;
//  std::list<SlaveWindowThread> windows;       // Keeps track of all windows that have been created thus far.
    void destroyAllWindows();           // Iterates through the linked list and destroys each window.
};
#endif      //ifndef MAINWINDOW_H

/* 
 * MAIN_WINDOW.CPP
 *
 */  
#include "MainWindow.h"  
#include "MainWindowPane.h"  
#include "StartButton.h"  

MainWindow::MainWindow()// : /*list,*/ pane(/*list*/)
{
    pane;
}

void MainWindow::destroyAllWindows()
{
    //gtk_widget_destroy(*this);
    // TODO: Destroy all the other windows too.
}

/*
 * MAIN_WINDOW_PANE.H
 */  
#ifndef MAINWINDOWPANE_H  
#define MAINWINDOWPANE_H  

#include <gtkmm/box.h>
#include <gtkmm/button.h>

//#include "SlaveWindow.h"
#include "StartButton.h"

class MainWindowPane : public Gtk::HBox
{
public:
    MainWindowPane(/*&(std::list)*/);   
private:
    StartButton englishButton;      // Used to create a new RSED demo screen.
    StartButton chineseButton;      // Used to create a new RSED demo in chinese.
//  std::list<SlaveWindow> windows;     // Keeps track of all windows that have been created thus far.
    void destroyAllWindows();       // Iterates through the linked list and destroys each window.
};
#endif      //ifndef MAINWINDOWPANE_H

/* 
 * MAIN_WINDOW.CPP
 *
 */  
#include "MainWindowPane.h"  
#include "StartButton.h"  

MainWindowPane::MainWindowPane(/*&(std::list)*/) : 
    englishButton(StartButton::ENGLISH/*,&(std::list)*/), 
    chineseButton(StartButton::CHINESE/*,&(std::list)*/)
{
    pack_start(englishButton);
    englishButton.show();
    pack_start(chineseButton);
    chineseButton.show();
}

void MainWindow::destroyAllWindows()
{
    //gtk_widget_destroy(*this);
    // TODO: Destroy all the other windows too.
}

未定义的参考错误意味着您要么 忘记写定义缺少的函数 (通过在.cpp文件), 或者您忘记将适当的目标文件或库链接到最终的二进制文件中。

在这种情况下,就是后来的原因了。 您需要包括MainWindowPane.o在 makefile 的链接器命令中:

g++  -g -o QPI_frontend main.o MainWindow.o StartButton.o `pkg-config gtkmm-2.4 --libs`
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                        you need MainWindowPane.o in here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对“Class::Class()”的未定义引用 的相关文章

  • Exit() 时是否调用基本对象析构函数?

    我意识到这个问题已经出现过几次 但我试图获得上述问题的明确答案 但我不断遇到相互矛盾的信息 我需要知道的是 当我使用 exit 时 基本类对象是否被破坏 我知道需要删除动态内存 但我的意思更像是 include
  • 在 CPP 类中将 C 函数声明为友元

    我需要在 C 函数中使用类的私有变量 我正在做这样的事情 class Helper private std string name public std getName return name friend extern C void in
  • MVC3中设置下拉列表中的所选项目

    我必须为视图中的下拉列表设置所选项目 但它不起作用 View div class editor label Html LabelFor model gt model Gender div div class editor field Htm
  • 未找到 Boost 库,但编译正常

    我正在尝试在 C 中使用 boost 的文件系统 使用时看起来编译没问题 c c Analyse c o Analyse o g W Wall L usr local lib lboost filesystem lboost system
  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • cpp.react库的C++源代码中奇怪的“->* []”表达式

    这是我在文档中找到的 C 片段cpp react 库 https github com schlangster cpp react implicit parallelism auto in D MakeVar 0 auto op1 in g
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • 如何使用 ASP.NET Core 获取其他用户的声明

    我仍在学习 ASP NET Core 的身份 我正在进行基于声明的令牌授权 大多数示例都是关于 当前 登录用户的 就我而言 我的 RPC 服务正在接收身份数据库中某个用户的用户名和密码 我需要 验证是否存在具有此类凭据的用户 获取该用户的所
  • 获取没有显式特征的整数模板参数的有符号/无符号变体

    我希望定义一个模板类 其模板参数始终是整数类型 该类将包含两个成员 其中之一是类型T 另一个作为类型的无符号变体T 即如果T int then T Unsigned unsigned int 我的第一直觉是这样做 template
  • 如何使用 x64 运行 cl?

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • 从 C# 使用 Odbc 调用 Oracle 包函数

    我在 Oracle 包中定义了一个函数 CREATE OR REPLACE PACKAGE BODY TESTUSER TESTPKG as FUNCTION testfunc n IN NUMBER RETURN NUMBER as be
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • Visual Studio 2015:v120 与 v140?

    仅供参考 Win10 x64 我今天开始尝试 Visual Studio 2015 在弄清楚如何运行 C C 部分后 我尝试加载一个大型个人项目 该项目使用非官方的glsdk http glsdk sourceforge net docs
  • 代码中的.net Access Forms身份验证“超时”值

    我正在向我的应用程序添加注销过期警报 并希望从我的代码访问我的 web config 表单身份验证 超时 值 我有什么办法可以做到这一点吗 我认为您可以从 FormsAuthentication 静态类方法中读取它 这比直接读取 web c
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • 是否允许全局静态标识符以单个 _ 开头?

    换句话说 可能static 文件范围 全局变量恰好以一个下划线开头 而不会产生与 C 实现发生名称冲突的可能性 https www gnu org software libc manual html node Reserved Names
  • 我可以使用 lambda 函数或 std::function 对象来代替函数指针吗?

    我有一个需要使用的库 它定义了以下内容 typedef void CallbackFunction const int i 并且有一个注册回调的函数 如下所示 void registerCallback CallbackFunction p
  • 如何在 C 中将 char 连接到 char* ?

    我怎样才能前置char c to char myChar 我有c值为 A and myChar值为 LL 我怎样才能前置c to myChar使 ALL 这应该有效 include

随机推荐

  • Ipython 笔记本:导入脚本函数的名称错误

    我有两个脚本sources py and nest py 他们是这样的 来源 py import numpy as np from nest import def make source rest of the code def detec
  • 如何使当前片段保持在屏幕旋转上

    我试图在一项活动中使用 3 个片段 其中一个片段被设置为默认片段onCreate 方法和其他片段正在通过某些操作进行调用 因此当我旋转屏幕时onCreate 方法再次调用 我当前的片段丢失 默认片段再次开始 但我必须在onCreate 方法
  • 写入csv文件 - python 3.7

    在此输入图像描述 https i stack imgur com xu0F8 png在此输入图像描述 https i stack imgur com uxN1W png在此输入图像描述 https i stack imgur com 0r0
  • 日期减去秒总是返回相同的[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 echo date Y m d H m s strtotime 15 minutes ago br echo date Y m d
  • 在 Qt 中显示解码视频帧的最有效方法是什么?

    将图像显示到 Qt 小部件的最快方法是什么 我已经使用 libavformat 和 libavcodec 解码了视频 因此我已经有了原始 RGB 或 YCbCr 4 2 0 帧 我目前正在使用 QGraphicsView 和包含 QGrap
  • 如何在单击时将 href 设置为复选框?

    1 如何在单击时将 href 设置为复选框 a href Demo sense show 4 a
  • 使用 post-receive 挂钩创建 zip

    我已经玩 Hooks有一段时间了 但我似乎无法理解post receivehook 以我需要的方式工作 我正在尝试获取post receive在我将更改推送到存储库后 创建一个 zip 文件夹并将其放置在 git 存储库文件夹之外的某个位置
  • 在 emacs 中定义键绑定

    我想将 emacs 中的命令映射到键绑定 我想要命令Control l与命令具有相同的效果Alt x goto line随后是一个返回 因为该命令首先需要调用一个返回 然后是一个行号 我修改了init文件如下 define key M x
  • Xamarin Forms、Sqlite、EF Core 3、迁移和许多混乱

    我有一个 Xamarin Forms 应用程序 我已从仅使用 Restful API 切换为使用本地 SQLite DB 它将使用此进行同步Dotmim Sync 数据库同步框架 https mimetis github io Dotmim
  • 原子基团和非捕获基团有什么区别?

    什么是原子团 gt expr 以及它的用途是什么 在https www regular expressions info atomic html https www regular expressions info atomic html
  • 如何在 JavaScript 中迭代数组并删除元素[重复]

    这个问题在这里已经有答案了 我有一个元素数组 需要从中删除某些元素 问题是 JavaScript 似乎没有 foreach 循环 如果我使用 for 循环 我会遇到问题 它基本上试图检查超出数组边界的元素 或者由于索引更改而丢失数组中的元素
  • Python 将对象列表序列化为 JSON [重复]

    这个问题在这里已经有答案了 我正在尝试序列化为 JSON dict 一个对象的实例 工作正常 直到我将对象附加到第一个对象的实例属性之一 from json import dumps class A object def init self
  • 将 Spring Boot 应用程序部署到 Elastic Beanstalk 时出现 502 Bad Gateway

    免责声明 我知道对此有很多问题 我已经查看了它们并应用了答案 但它仍然不起作用 我使用 jar 不是 war 文件将 Spring Boot 应用程序部署到 Elastic Beanstalk 我正在使用Java 1 8 我将 applic
  • yii2 - 模型加载函数未设置某些模型属性

    我正在开发 PHP Yii2 应用程序 我在 yii2 上遇到了一个奇怪的问题yii base Model load功能 这是我的问题 我有一个名为的表单模型PaymentIncreaseBalanceForm像下面这样 class Pay
  • 如何获得 Elm 风格

    我从 Elm 开始 当你想设置样式时 你可以简单地将它嵌入到你的组件中 Html Attribute style List String String 但我找不到办法get样式而不是设置 其实我需要的是line height特定的 CSS
  • Vue SSR 将 Express 服务器与 vue 应用程序捆绑在一起,以便可以从复制到主机服务器的 build dist 文件夹运行该应用程序

    我创建了一个 Vue SSR 应用程序 我读过的所有说明 wiki 博客仅告诉您如何在开发环境中运行该应用程序 他们不会告诉您如何在生产环境中运行应用程序 我之前在 React SSR 应用程序中编写过相同的应用程序 在该应用程序中 构建会
  • 使用 OpenAL 在 iOS 上离线录音

    我正在使用 openAL 以特定的时间间隔播放声音样本 我想将其导出到文件 无论是 caf 或 aac 或其他文件 如何使用 OpenAL 做到这一点 而不需要通过扬声器 耳机实时播放我的样本 如果您正在谈论将乐谱导出为完整的音频片段 Op
  • 如何在 ajax 调用完成之前阻止页面导航

    因此 我有一个 ajax 调用来获取几十个大小为几兆字节的数据块 然后通过 html5 文件系统 api 将数据存储在本地 我想阻止用户在 ajax 调用完成之前离开页面 我决定探索onbeforeunload事件 让它通知用户应该停留在页
  • 如何在 Android 手机中使用语音识别而不出现烦人的对话框

    不修改android API 可以实现吗 我找到了一篇关于此的文章 有人评论说我应该对 android API 进行修改 但没有说如何修改 有人可以给我一些关于如何做到这一点的建议吗 谢谢 我找到了这篇文章 语音识别器 https stac
  • 对“Class::Class()”的未定义引用

    我正在编写一个GTKmm窗口程序 主窗口创建两个按钮 一个用于英语 一个用于中文 用户可以单击该按钮以显示适当语言的不同窗口 目前 我在初始化主窗口内的多项目容器时遇到问题 它是一个MainWindowPane类型的对象 它继承了Gtk H