SDL2 и SDL_image, переопределение и конфликтующие объявления при компиляции

Я пытаюсь использовать SDL_image библиотека, чтобы я мог отобразить .png файл в окне, сделанном с использованием SDL2 библиотека. Моя проблема в том, что когда я компилирую код, я получаю много ошибок о замедлении и прочем в заголовочных файлах SDL. Я использую Eclipse на Ubuntu LTS 16.04

Я не совсем уверен, в чем проблема и как я могу решить эту проблему, так что шаг за шагом, что, почему и как я могу полностью понять, было бы здорово

Ответ на вопрос есть в комментариях к этому посту.

Вот мои ошибки

In file included from /usr/include/SDL2/SDL.h:52:0,
                 from /usr/include/SDL2/SDL_image.h:27,
                 from temp.cpp:12:
/usr/include/SDL2/SDL_render.h:116:3: error: conflicting declaration 
‘typedef enum SDL_RendererFlip SDL_RendererFlip’
 } SDL_RendererFlip;
   ^
In file included from /usr/local/include/SDL2/SDL.h:52:0,
                 from temp.cpp:11:
/usr/local/include/SDL2/SDL_render.h:116:3: note: previous declaration 
as 
‘typedef enum SDL_RendererFlip SDL_RendererFlip’
 } SDL_RendererFlip;
   ^
In file included from /usr/include/SDL2/SDL.h:57:0,
                 from /usr/include/SDL2/SDL_image.h:27,
                 from temp.cpp:12:
/usr/include/SDL2/SDL_version.h:51:16: error: redefinition of ‘struct 
SDL_version’
 typedef struct SDL_version

`

Вот мой код

#include <iostream>
#include <string>
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <stdio.h>

using namespace std;

int main(int argc, char* argv[])
{
    SDL_Window* window;         
    SDL_Renderer* renderer;     
    SDL_Surface* surface;       
    SDL_Texture* texture;       
    SDL_Init(SDL_INIT_VIDEO);   
    IMG_Init(IMG_INIT_JPG);     


    window = SDL_CreateWindow(  
            "SDL Window",       
            100,                
            600,                
            1200,               
            700,            
            SDL_WINDOW_OPENGL); 

    if (window == NULL)         
    {
        cout << "Could not create window: \n" << SDL_GetError() << 
        endl;   
        return 1;                                               
    }

    renderer = SDL_CreateRenderer (window, -1, 0);          

    surface = IMG_Load("introtext.png");                    
    texture = SDL_CreateTextureFromSurface(renderer, surface);      
    SDL_RenderCopy(renderer, texture, NULL, NULL);              
    SDL_RenderPresent(renderer);

    SDL_Delay(5000);                


    SDL_DestroyTexture(texture);
    SDL_FreeSurface(surface);   
    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(window);      

    IMG_Quit();                     
    SDL_Quit();                     
    return 0;                       
}

0 ответов

Другие вопросы по тегам