SDL链接错误与linux g ++

时间:2012-06-06 15:01:15

标签: c++ linux g++ sdl

Here is the error I get from my terminal when I try to compile the code

/*This is the init file that controls all the major background processes
will contain major bliting of backgrounds,surfaces, and handle collision
*/
#ifndef_init_H_
    #define _init_H_

#include <SDL>



class init{
    private:
        bool Running;
        SDL_Surface* Surf_Display;
    public:
        init();
        int OnExecute();
    public:
        bool OnInit();
        void OnEvent(SDL_Event* Event);
        void OnLoop();
        void OnRender();
        void OnCleanup();
};

如果您对此感到疑惑,这里是我从sdltutorials.com复制的代码。我用了他们的基础教程。我认为可能存在与sdl和我的操作系统的链接错误,但不确定。

2 个答案:

答案 0 :(得分:2)

列出了两个错误 - 在第一个#ifndef之后需要一个空格,似乎您的编译器无法找到SDL头文件 - 可能它们未安装,或者你需要一个-Ipath / to / SDL / include编译器选项,以便它看起来正确。

答案 1 :(得分:0)

首先,您可能希望确保首先安装SDL。我不会浪费你的时间来浏览所有特定于分发的东西。我会假设你知道你在做什么。修复拼写错误后,您可能会使用pkg-config。它通过键入:

在command-lind上调用
$ g++ source.cpp -o program `pkg-config --cflags --libs sdl`

**注意使用`而不是'。当然,-o标志和所有爵士乐我相信你很熟悉。 pkg-config将相应的标志添加到命令行,这样您就不必担心手动列出所有必需的命令行参数。当然,所有* .pc文件的可用性因分发而异,但使用Ubuntu 12.04时,上述命令可以正常工作。根据我的经验,无论分布何种分布,pkg-config都适合在您的系统上运行。如果您想了解实际情况,请输入:

$ pkg-config --cflags --libs sdl