Это довольно пустой вопрос. В принципе, я не могу скомпилировать базовую программу Hello World на OSX (Yosemite), используя внешнюю библиотеку SDL2.Как скомпилировать C++-программу с SDL2 на OS X?
Я пытаюсь сделать это на консоли без помощи каких-либо IDE. Я уже установил SDL 2.0.3, и он находится по пути /Library/Frameworks/SDL2.framework
.
Мой главный файл выглядит следующим образом:
#include <SDL2/SDL.h>
#include <stdio.h>
bool init();
void close();
SDL_Window* gameWindow = NULL;
SDL_Surface* gameScreenSurface = NULL;
bool init()
{
...
}
void close()
{
...
}
int main(int argc, char** argv)
{
if(!init())
{
printf("Failed to initialize!\n");
}
else
{
SDL_Delay(2000);
}
close();
return 0;
}
И у меня тоже есть Makefile (взятый из примера я нашел где-то), который выглядит следующим образом:
CC = g++
LDFLAGS = -g -Wall
PROGNAME = doom
SOURCES = main.cpp
INCLUDES =
OBJECTS = $(subst %.cc, %.o, $(SOURCES))
ROOTCFLAGS := $(shell root-config --cflags)
ROOTLIBS := $(shell root-config --libs)
ROOTGLIBS := $(shell root-config --glibs)
ROOTLIBS := $(shell root-config --nonew --libs)
CFLAGS += $(ROOTCFLAGS)
LIBS += $(ROOTLIBS)
all: doom
$(PROGNAME): $(OBJECTS)
$(CC) $(LDFLAGS) -o doom $(OBJECTS) $(LIBS)
%.o : %.cc $(INCLUDES)
$(CC) ${CFLAGS} -c -g -o [email protected] $<
И вот об этом. Когда я бегу make
, я получаю такой ответ:
make: root-config: Command not found
make: root-config: Command not found
make: root-config: Command not found
make: root-config: Command not found
g++ -g -Wall -o doom main.cpp
Undefined symbols for architecture x86_64:
"_SDL_CreateWindow", referenced from:
init() in main-8b6fae.o
"_SDL_Delay", referenced from:
_main in main-8b6fae.o
"_SDL_DestroyWindow", referenced from:
close() in main-8b6fae.o
"_SDL_GetError", referenced from:
init() in main-8b6fae.o
"_SDL_GetWindowSurface", referenced from:
init() in main-8b6fae.o
"_SDL_Init", referenced from:
init() in main-8b6fae.o
"_SDL_Quit", referenced from:
close() in main-8b6fae.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [doom] Error 1
Таким образом, я могу получить некоторые рекомендации, пожалуйста? Я немного потерял, с чего начать. Я никогда не компилировал программу на OSX или любую ОС на базе Unix.
Я искал эту корневую конфигурацию, которую мне не хватает, и кажется, что мне нужно установить библиотеку под названием Root. Я сделал это. Сжатый в директории, не знаю, куда идти оттуда.
Заранее спасибо.
Вот мой sdl2 пример, работает на OSX, но я использую CMake для создания: https://github.com/nickdesaulniers/sdl2web –