SDL bash: /.../ keine Berechtigung



  • Hallo,

    Ich habe spiele gerade ein bisschen mit SDL2 rum und habe gerade aus einem
    Tutorial ein Fenster erstellt, was nichts machen soll außer weiss sein und einen Titel haben etc;

    nun kommt aber wenn ich es mit atom(meine IDE) ausführe folgender Kommentar.

    bash: /tmp/file_name: Keine Berechtigung
    

    Weiß jemand Rat?

    Danke
    Lou



  • Deine Fehlerneldung lässt Rückschlüsse darauf zu, dass dein Programm admin rechte benötigt. Da es um das tmp Vezeichnis geht, nehme ich mal an, dass du versuchst eine log Datei zu kreieren. Man kann ohne root rechte allerdings nur in das /home Verzeichnis schreiben.



  • Ohne code können wir schlecht helfen.
    Wenn aber das Programm nur SDL initialisieren soll, könnte diese Fehlermeldung von ATOM kommen.
    Kommt diese Fehlermeldung auch, wenn du das programm so startest(nicht aus ATOM raus)?



  • hallo,

    Ich habe auch schon an root- Rechte gedacht, bin aber verwundert, weil sich meiner Meinung keine log schreibt. Ich nutze den Code zum üben von allem gelernten er stammt aber primär nicht von mir. Hier ist nur die class.cpp der dazugehörige Header und die main enthalten keine Fehler.

    #include "game.hpp"
    
    
    Game::Game()
    {}
    Game::~Game()
    {}
    
    void Game::init(const char* title, int xpos, int ypos, int width, int height, bool fullscreen)
    {
    
    
        int flags = 0;
        if(fullscreen){
    
          flags = SDL_WINDOW_FULLSCREEN;
        } // if fs
    
        if(SDL_Init(SDL_INIT_EVERYTHING) == 0){
           cout << "Subs initialisiert" << endl;
    
           window = SDL_CreateWindow(title, xpos, ypos, width, height , flags );
           if(window){
             cout << "Fenster am Start" << endl;
           } // if window
    
           renderer = SDL_CreateRenderer(window, -1,0);
           if(renderer){
             SDL_SetRendererDrawColor(renderer, 255, 255, 235, 255);
             cout << "Renderer am Start" << endl;
           }
    
           isRunning = true;
    
        }// if
        else { isRunning = false;}
    }
    void Game::handleEvents()
    {
      SDL_EVENT  event;
      SDL_PollEvent(&event);
    
        switch(event.type){
            case SDL_QUIT : isRunning = false; break;
    
            default :   break;
    
    
    
    
        }
    
    }
    
    void Game::update()
    {}
    
    void Game::renderer()
    {
      SDL_RendererClear(renderer);
      SDL_RendererPresent(renderer);
      SDL_DestroyWindow(window);
      SDL_DestroyRenderer(renderer);
      SDL_Quit();
      cout << " Sauber beendet" << endl;
    
    
    }
    
    void Game::clean()
    {}
    
    @firefly SDL wurde IMHO erfolgreich initalisiert.
    
    Danke Lou


  • @firefly sagte in SDL bash: /.../ keine Berechtigung:

    Wenn aber das Programm nur SDL initialisieren soll, könnte diese Fehlermeldung von ATOM kommen.
    Kommt diese Fehlermeldung auch, wenn du das programm so startest(nicht aus ATOM raus)?

    das.



  • @Swordfish also sollte ich über die Konsole compilieren?
    ist Code blocks besser?



  • ATOM, DevC++, Code::Blocks, Eclipse, ... das sind alles IDEs (Integrated Development Environments), keine Compiler. Was hier vermutet wurde ist, daß ATOM bei seinem Weg Deinen Code zu kompilieren (also einen Compiler ... gcc, clang, msvc, ...) aufzurufen, obige Fehlermeldung produzirt. Einerseits kannst Du natürlich einfach eine andere IDE verwenden, oder versuchen, den Fehler in ATOM zu finden und zu beheben. Andreaseits kannst Du auch auf eine IDE zum kompilieren verzichten und stattdessen make, cmake oder irgendein anderes Buildsystem nehmen, oder den Compiler auch händisch aufrufen. Liegt an Dir.

    Vielleicht reicht es auch schon, ATOM als ein User zu starten, der schreibrechte in /tmp hat.


Anmelden zum Antworten