首页 > 解决方案 > C++ 无法链接最基本的应用程序

问题描述

我正在制作一个用于着色器解析的程序,我想将一些代码移动到不同的类中,然后我遇到了很多链接器错误,开始调试它们并尝试尽可能基本的情况来消除它们一,我删除了所有代码,我不知道是我累了还是我的视觉工作室有问题,但是这段代码:

主文件

#include "Shader.h"

int main()
{
    Shader shader;
    shader.DoStuff();

    return 0;
}

着色器.h

#pragma once
class Shader
{
public:

    void DoStuff();
};

着色器.cpp

#include "Shader.h"
void Shader::DoStuff()
{
}

生成链接器错误:

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2019 unresolved external symbol "public: void __thiscall Shader::DoStuff(void)" (?DoStuff@Shader@@QAEXXZ) referenced in function _main   ShaderParser

比如,我是否忘记了某事或发生了什么?

标签: c++linkerlinker-errorsunresolved-external

解决方案


已经通过编译,可以在我的电脑Visual Studio上正常运行,没有问题。所以:

  1. 你最好检查编译选项参数。
  2. 这 3 个文件是否按照写入的命令放置在正确的路径(文件夹)中。
  3. “#pragma once”不标准,尝试将其更改为“#ifndef #define ... #endif”

当 *.h 和 *.cpp 对不对应时,通常会出现此问题。


推荐阅读