G ++无法编译程序

时间:2019-05-26 15:52:56

标签: c++

我正在使用G ++编译器将Windows Visual Studio上的工作项目(带有SFML)迁移到Xubuntu环境。

我先做g++ -c main.cpp,然后再做g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system

但是会引发错误:

  

main.o:在函数“ main”中:   main.cpp :(。text + 0xfa):未定义引用`SaGa :: Game :: Game(int,int,std :: __ cxx11 :: basic_string,std :: allocator>)'   collect2:错误:ld返回1退出状态

我的主要课程是:

#include "Game.hpp"
#include "DEFINITIONS.hpp"

int main() {
        SaGa::Game(SCREEN_WIDTH, SCREEN_HEIGHT, "SaGa II");
        return EXIT_SUCCESS;
}

Game.hpp文件为:

#pragma once

#include <memory>
#include <string>
#include <SFML/Graphics.hpp>
#include "StateMachine.hpp"
#include "AssetManager.hpp"
#include "InputManager.hpp"

namespace SaGa
{
        struct GameData
        {
                StateMachine machine;
                sf::RenderWindow window;
                AssetManager assets;
                InputManager input;
        };

        typedef std::shared_ptr<GameData> GameDataRef;

        class Game
        {
        public:
                Game(int width, int height, std::string title);

        private:
                const float dt = 1.0f / 60.0f; // frame rate
                sf::Clock _clock;

                GameDataRef _data = std::make_shared<GameData>();

                void Run();
        };
}

我不知道是否有某些东西可以在Windows上运行,但不能在Linux上运行。我是C ++的新手

0 个答案:

没有答案