未解析的外部符号,其中包含 c++ 中定义的所有内容

问题描述 投票:0回答:1

我一直在编写一个基于控制台的文本编辑器......见鬼,我遇到了一个问题。这是我的第一个包含多个文件的项目,我用它来定义在 main.cpp 文件中使用的类。问题是这样的:

我在

textDisplay
中定义了一个类
textEditor.cpp
。头文件是:

#pragma once
#ifndef textEditor
#define textEditor
#include <string>
class txtDisplay {  
public:
    void display(int, int, std::string);
    void toggle();
};
#endif // !textEditor

这是 textEditor.cpp 中的定义:

class txtDisplay {
private:
    bool active;
    string displayString;
    int cursorRow;
    int cursorCollumn;
public: ... here are my function definitions

然后我使用

txtDisplay display;
在 main.cpp 中实例化一个 txtDisplay 对象。但由于某种原因,当我运行该程序时,我收到此错误:

main.obj : error LNK2019: unresolved external symbol "public: void __cdecl txtDisplay::display(int,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?display@txtDisplay@@QEAAXHHV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function main
1>main.obj : error LNK2019: unresolved external symbol "public: void __cdecl txtDisplay::toggle(void)" (?toggle@txtDisplay@@QEAAXXZ) referenced in function main

我的定义有错吗?也许是联动问题?它全部与#include“textEditor.h”以及所有这些相关联,所以我不知道它可能是什么

我尝试过重新定义、更改名称、使用不同的构造函数

c++ file oop header include
1个回答
0
投票

使用基于控制台的 CMake 进行构建非常有用。 顺便问一下,你知道 Windows 上的 __declspec(dllexport) 和 __declspec(dllimport) 吗?

© www.soinside.com 2019 - 2024. All rights reserved.