我正在使用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 ++的新手