c++ - 为什么链接器在 Ubuntu 上找不到这个析构函数
问题描述
有一个控制台应用程序,我把它写成自我改进的一部分。有时我在 Windows 中编写,有时在 Ubuntu 中。直到一段时间都没有问题。现在突然在 Ubuntu 上使用以下设置,运行时:
g++ AlarmSystem.cpp -o main
,我收到这种类型的错误:
/usr/bin/ld: /tmp/cchydRcW.o: in function `main': AlarmSystem.cpp:(.text+0x43): undefined reference to `MainConsoleController::MainConsoleController()'
/usr/bin/ld: AlarmSystem.cpp:(.text+0x57): undefined reference to `MainConsoleController::~MainConsoleController()'
collect2: error: ld
returned 1 exit status
报警系统.cpp
#include "MainConsoleController.h"
int main()
{
MainConsoleController m = MainConsoleController();
return 0;
}
MainConsoleController.h
#pragma once
#ifndef MAIN_CONSOLE_CONTROLLER_H
#define MAIN_CONSOLE_CONTROLLER_H
#include <iostream>
#include "MainConsoleView.h"
#include "MainConsole.h"
class MainConsoleController
{
private:
std::string _currentCommand;
Commands _command;
MainConsoleView _view;
MainConsole _model;
bool _isWorking;
public:
MainConsoleController();
virtual ~MainConsoleController();
void CheckInput();
void MainLoop();
void ConvertInput();
void MakeCommand();
};
#endif
主控制台控制器.cpp
#include "MainConsoleController.h"
MainConsoleController::MainConsoleController()
{
this->_isWorking = true;
MainLoop();
}
MainConsoleController::~MainConsoleController()
{
}
void MainConsoleController::CheckInput()
{
std::cin >> this->_currentCommand;
}
void MainConsoleController::MainLoop()
{
this->_view.PrintWelcome();
while (this->_isWorking)
{
CheckInput();
ConvertInput();
MakeCommand();
}
}
...
谁能告诉我问题是什么?
解决方案
推荐阅读
- javascript - WIX JS - 自定义预加载器屏幕
- javascript - 目录 jQuery 滑块
- xcode - 可可豆荚未安装
- quasar-framework - 在 vue3 / quasar2 中访问 $route
- java - 我在 Spring 安全性中为我的身份验证管理器设置了一个父级,但它不起作用
- c# - 在c#中确定一个值属于哪个范围
- ios - 有没有办法增加“NFCMifareTag.SendMiFareCommand()”的超时时间?
- github-actions - 使用操作/设置节点时如何在 github 操作中更改 @yarn:registry
- filter - Cakephp 3 按多对多关联关系过滤
- android - 在菜单项中显示 Livedata