When opening a SDL program, double clicking on the icon, a terminal window pop up too. How can we avoid this ?
I saw that on Windows OS, there's a compilation option -mwindows which do this but it doesn't work on OSX.
Here is my code :
#include <iostream>
#include <SDL2/SDL.h>
int main(int argc, char *argv[])
{
// SDL window
SDL_Window* window(0);
SDL_Event events;
bool quit(false);
// Initialize SDL
if(SDL_Init(SDL_INIT_VIDEO) < 0)
{
std::cout << "Initialization error : " << SDL_GetError() << std::endl;
SDL_Quit();
return -1;
}
// Create window
window = SDL_CreateWindow("Windows", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL);
if(window == 0)
{
std::cout << "Creation error : " << SDL_GetError() << std::endl;
SDL_Quit();
return -1;
}
// Main loop
while(!quit)
{
SDL_WaitEvent(&events);
if(events.window.event == SDL_WINDOWEVENT_CLOSE)
quit = true;
}
// Quit SDL
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
And here is my makefile :
# Makefile
.PHONY: clean, mrproper, run
NAME=Program
EXEC=$(NAME)
SRC_DIR=./Sources
HEA_DIR=./Headers
OBJ_DIR=./Objects
SRC=$(wildcard $(SRC_DIR)/*.cpp)
OBJ=$(patsubst $(SRC_DIR)/%.cpp, $(OBJ_DIR)/%.o, $(SRC))
HEA=$(wildcard $(HEA_DIR)/*.h)
FRA_DIR=/Library/Frameworks/SDL2.framework/Headers/
CXX=g++
CXXFLAGS=-W -Wall -std=c++11 -I $(HEA_DIR) \
-I $(FRA_DIR)
LDFLAGS=-F/Library/Frameworks -framework SDL2
all: $(EXEC)
$(EXEC): $(OBJ)
$(CXX) -o $@ $^ $(LDFLAGS)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp $(HEA)
$(CXX) -o $@ -c $< $(CXXFLAGS)
clean:
@rm -rf $(OBJ_DIR)/*.o
mrproper: clean
@rm -rf $(EXEC)
run:
@./$(EXEC)
Thanks in advance
PS : sorry for the format of my makefile I didn't manage to change that !