Войти
ПрограммированиеФорумОбщее

SDL2 && QtCreator on Mac

#0
22:55, 18 апр. 2014

Суть проблемы :
У меня не хочет подключается либа SDL2.Я на маке недавно и поэтому еще не вник в тонкости подключения библиотек на маке.
На скриншотах все показано.

+ Показать
+ Показать

Как ее решить?


#1
10:25, 19 апр. 2014

А если дописать

QMAKE_LFLAGS += -F/System/Library/Frameworks/
?

#2
14:41, 19 апр. 2014

Dimich
Не помогло.Тоже самое пишет

#3
18:05, 19 апр. 2014

Может быть в связке с QtCreator будет удобнее установить SDL2 через homebrew?

#4
19:37, 19 апр. 2014

$tatic
Мне такое вариант не подходит, я хотел бы как на линуксе или винде просто подключить.

#5
0:30, 20 апр. 2014

> Мне такое вариант не подходит, я хотел бы как на линуксе или винде просто подключить.

> как на линуксе

Так ведь и будет как на линуксе:

brew install SDL2

Библиотека скачается и установится в /usr/local/include и /usr/local/lib (реально, конечно, там будут симлинки на директории, но это роли не играет).

#6
0:40, 20 апр. 2014

Скачал исходники SDL2 , собрал через XCode, создал новый проект в xcode  подключил к проекту библиотеку, вставил тот же код, он завелся, создалось окно.Теперь осталось только под Qt  понять что не так.(Код идентичен, как и библиотека и компилятор только один).

т.е как ИТОГ:
Собранная библиотека
- при подключении к проекту в xcode запускается
- при подключении к проекту в qtcreator  повляются ошибки

Библиотека одна.
Код один.

Ошибка поменялась теперь он находит библиотеку:
Снимок экрана 2014-04-20 в 0.38.32 | SDL2 && QtCreator on Mac
Снимок экрана 2014-04-20 в 0.38.37 | SDL2 && QtCreator on Mac

#7
1:18, 20 апр. 2014

Edisoni
Вот ведь упёртое создание :)

Предполагаю, что ошибка symbol(s) not found связана с отсутствием символа _SDL_main. В случае с homebrew-версией это легко решается добавлением ключа -lSDL2main, а вот как победить эту ошибку в случае с фреймворком SDL2 и сборкой в QtCreator или вручную разобраться не получилось. В составе фреймворка SDL1 шёл, кстати говоря, файлик SDL_main.m, с которым нужно было собирать свою программу. В SDL2 почему-то его нет.

#8
11:54, 20 апр. 2014

Установил через brew SDL2.
Снимок экрана 2014-04-20 в 11.34.54 | SDL2 && QtCreator on Mac
Подключил, ошибка осталась та же.

#9
16:04, 20 апр. 2014

Edisoni
> Подключил, ошибка осталась та же.

-lSDL2main -lSDL2 — порядок очень важен

#10
16:59, 20 апр. 2014

$tatic
Снимок экрана 2014-04-20 в 16.58.47 | SDL2 && QtCreator on Mac
Как то не удалось.
Ошибка осталась

#11
17:31, 20 апр. 2014

test.pro

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
CONFIG += c++11

INCLUDEPATH += /usr/local/include
LIBS += -L/usr/local/lib -lSDL2main -lSDL2

SOURCES += \
    main.cpp

main.cpp

#include <SDL2/SDL.h>
#include <stdio.h>

int main(void)
{
    SDL_Init(SDL_INIT_VIDEO);

    SDL_Window* wnd = SDL_CreateWindow(
                "Hello, World",
                SDL_WINDOWPOS_UNDEFINED,
                SDL_WINDOWPOS_UNDEFINED,
                640, 480,
                SDL_WINDOW_OPENGL);

    if (wnd == NULL) {
        return 1;
    }

    SDL_Delay(3000);

    SDL_DestroyWindow(wnd);
    SDL_Quit();
    return 0;
}

MacOS X 10.9.2, Qt 5.2.1, Clang 5.1 (503.0.40)

ПрограммированиеФорумОбщее

Тема в архиве.