Как исправить эти ошибки, даже если я правильно ссылаюсь на функцию?
Вот код:
Двигатель.ч
#ifndef _ENGINE_H #define _ENGINE_H #include <SFML\Graphics.hpp> class Engine { private: //SFML Render Window sf::RenderWindow* window; //Initializes the engine bool Init(); //Main Game Loop void MainLoop(); //Renders one frame void RenderFrame(); //Processes user input void ProcessInput(); //Updates all Engine internals void Update(); public: Engine(); ~Engine(); void Go(); //Starts the engine }; #endif
Engine.cpp
include "Engine.h" #include <SFML\Graphics.hpp> Engine::Engine() { } Engine::~Engine() { } bool Engine::Init() { window = new sf::RenderWindow(sf::VideoMode(800, 600, 32), "RPG"); if(!window) return false; return true; } void Engine::RenderFrame() { } void Engine::ProcessInput() { sf::Event evt; //Loop through all window events while(window->pollEvent(evt)) { if(evt.type == sf::Event::Closed) window->close(); } } void Engine::Update() { } void Engine::MainLoop() { //Loop until our window is closed while(window->isOpen()) { ProcessInput(); Update(); RenderFrame(); } } void Engine::Go() { if(!Init()) throw "Could not initialize Engine"; MainLoop(); }
и Main.cpp
#include <Windows.h> #include "Engine.h" int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) { Engine* engine = new Engine(); try { engine->Go(); } catch(char* e) { MessageBoxA(NULL, e, "Exception Occured", MB_OK | MB_IConerror); } }
Ошибки:
||=== Build: Debug in Game Engine (compiler: GNU GCC Compiler) ===| obj\Debug\Engine.o||In function `ZN6Engine4InitEv':| C:\Users\dento\Desktop\Game Engine\Engine.cpp|17|undefined reference to `_imp___ZN2sf9VideoModeC1Ejjj'| C:\Users\dento\Desktop\Game Engine\Engine.cpp|17|undefined reference to `_imp___ZN2sf6StringC1EPKcRKSt6locale'| C:\Users\dento\Desktop\Game Engine\Engine.cpp|17|undefined reference to `_imp___ZN2sf12RenderWindowC1ENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE'| obj\Debug\Engine.o||In function `ZN6Engine12ProcessInputEv':| C:\Users\dento\Desktop\Game Engine\Engine.cpp|31|undefined reference to `_imp___ZN2sf6Window9pollEventERNS_5EventE'| C:\Users\dento\Desktop\Game Engine\Engine.cpp|37|undefined reference to `_imp___ZN2sf6Window5closeEv'| obj\Debug\Engine.o||In function `ZN6Engine8MainLoopEv':| C:\Users\dento\Desktop\Game Engine\Engine.cpp|47|undefined reference to `_imp___ZNK2sf6Window6isOpenEv'| C:\Users\dento\Desktop\Game Engine\Engine.cpp|47|undefined reference to `_imp___ZN2sf6Window9pollEventERNS_5EventE'| obj\Debug\Engine.o||In function `ZN6Engine12ProcessInputEv':| C:\Users\dento\Desktop\Game Engine\Engine.cpp|37|undefined reference to `_imp___ZN2sf6Window5closeEv'| obj\Debug\Engine.o||In function `ZN6Engine2GoEv':| C:\Users\dento\Desktop\Game Engine\Engine.cpp|59|undefined reference to `_imp___ZNK2sf6Window6isOpenEv'| C:\Users\dento\Desktop\Game Engine\Engine.cpp|59|undefined reference to `_imp___ZN2sf6Window9pollEventERNS_5EventE'| obj\Debug\Engine.o||In function `ZN6Engine12ProcessInputEv':| C:\Users\dento\Desktop\Game Engine\Engine.cpp|37|undefined reference to `_imp___ZN2sf6Window5closeEv'| c:\mingw\bin\..\lib\gcc\mingw32\4.9.3\..\..\..\libmingw32.a(main.o):(.text.startup+0xa0)||undefined reference to `WinMain@16'| ||error: ld returned 1 exit status| ||=== Build failed: 13 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|
просто заметил в ошибках, что некоторые из них находятся в файле .o. Как я это исправлю?
Что я уже пробовал:
Я пытался изменить имена, я пытался найти то, что он говорит, что я не ссылался, кроме того, что я не знаю, что попробовать.
Patrice T
В engine.cpp вы предоставили не тот, который генерировал сообщения об ошибках.
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
SomeRandomMan
Когда я компилирую его, он выдает ошибки в строках 17 (3 ошибки), 31 (1 ошибка), 37 (2 ошибки), 47 (2 ошибки), 59 (2 ошибки) и udefined ссылку на @WinMain16 (Примечание: все выданные ошибки являются неопределенными ссылками). Я просмотрел его дважды и не видел никаких причин для того, чтобы он выбрасывал ошибки.
Patrice T
Engine.cpp строка 17 пуста !
В engine.cpp вы предоставили не тот, который генерировал сообщения об ошибках.