Search code examples
c++sdl

Test program for SDL - "No such file or directory"


I searched but could not find an issue similar to mine. Thanks for any help!

I am using SDL in Code Blocks on a Mac.

I installed SDL according to this tutorial: https://www.youtube.com/watch?v=Bi9BPEwEMDU&t=5s

Here is how I set up the compiler and linker in C::B according to the video:

Compiler Settings:

+Search directories+  
/usr/local/Cellar/sdl2/2.0.5/include/SDL2

+Linker+  
/usr/local/lib

Linker Settings

+Link Libraires+  
/usr/local/lib/libSDL2_test.a  
/usr/local/lib/libSDL2-2.0.0.dylib  
/usr/local/lib/libSDL2.a  
/usr/local/lib/libSDL2main.a

The test program builds, but the terminal window states:

~ Buckwheat$ /Applications/CodeBlocks.app/Contents/MacOS/cb_console_runner DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:. /Users/Buckwheat/Documents/Code Blocks Projects/o/bin/Debug/o 

sh: /Users/Buckwheat/Documents/Code: No such file or directory

Process returned 127 (0x7F)   execution time : 0.002 s

Here is the test program:

// Example program:
// Using SDL2 to create an application window

#include "SDL.h"
#include <stdio.h>

int main(int argc, char* argv[]) {

    SDL_Window *window;                    // Declare a pointer

    SDL_Init(SDL_INIT_VIDEO);              // Initialize SDL2

    // Create an application window with the following settings:
    window = SDL_CreateWindow(
        "An SDL2 window",                  // window title
        SDL_WINDOWPOS_UNDEFINED,           // initial x position
        SDL_WINDOWPOS_UNDEFINED,           // initial y position
        640,                               // width, in pixels
        480,                               // height, in pixels
        SDL_WINDOW_OPENGL                  // flags - see below
    );

    // Check that the window was successfully created
    if (window == NULL) {
        // In the case that the window could not be made...
        printf("Could not create window: %s\n", SDL_GetError());
        return 1;
    }

    // The window is open: could enter program loop here (see SDL_PollEvent())

    SDL_Delay(3000);  // Pause execution for 3000 milliseconds, for example

    // Close and destroy the window
    SDL_DestroyWindow(window);

    // Clean up
    SDL_Quit();
    return 0;
}

Solution

  • Your path contains spaces :

    /Users/Buckwheat/Documents/Code Blocks Projects/o/bin/Debug/o
    

    And your shell takes the part of the path before the space as one separate argument :

    sh: /Users/Buckwheat/Documents/Code: No such file or directory
    

    You have to escape the spaces characters like this :

    /Users/Buckwheat/Documents/Code\ Blocks\ Projects/o/bin/Debug/o