必须定义LNK1561入口点 - SDL

LNK1561 entry point must be defined - SDL

本文关键字:SDL 入口 LNK1561 定义      更新时间:2023-10-16

我得到了一个LNK1561入口点必须定义错误,我尝试了我自己作为控制台的 stsyem 设置,但它仍然不起作用。这是我在 SDl.h donwload 页面中为 SDl.h 的每个类编写的代码。

主.cpp:

#include <iostream>
#include "MainGame.h"
int main(int argc, char** argv) {
std::cout << "Enter any ket to quit...";
int a;
std::cin >> a;
return 0;
}

主游戏.cpp:

#include "MainGame.h"
MainGame::MainGame()
{
_window = nullptr;
_screenHeight = 1028;
_screenWidth = 768;
}

MainGame::~MainGame()
{
}
void MainGame::run() {
    InitSystems();
}
void MainGame::InitSystems() {
    SDL_Init(SDL_INIT_EVERYTHING);
    _window = SDL_CreateWindow("title", SDL_WINDOWPOS_CENTERED, 
    SDL_WINDOWPOS_CENTERED, 1028, 768, SDL_WINDOW_OPENGL);
    }

主游戏.h:

#pragma once
#include <SDL/SDL.h>
class MainGame
{
public:
    MainGame();
    ~MainGame();
    void run();
    void InitSystems();
private:
    SDL_Window* _window;
    int _screenWidth;
    int _screenHeight;
};

所有他的代码是打开一个 窗口框架 在你的电脑上 en 打开一个控制台,上面有文字 按任何 ket 退出...如果我删除 SDL.h 包含和 SDL 代码,如果我放回包含而不是 SDL 代码,它会再次出现错误,那么一切正常。

你试过在你的主函数中使用MainGame吗?编译器假定它从未使用过并且您没有使 #include <SDL/SDL.h> 指令正常工作的可能性。此外,请考虑将#include <SDL/SDL.h>更改为 #include "SDL/SDL.h"

此外,对于不使用SDL_Main作为入口点的情况,还可以考虑使用 SDL_SetMainReady。