Суть проблемы :
У меня не хочет подключается либа SDL2.Я на маке недавно и поэтому еще не вник в тонкости подключения библиотек на маке.
На скриншотах все показано.
А если дописать
QMAKE_LFLAGS += -F/System/Library/Frameworks/
Dimich
Не помогло.Тоже самое пишет
Может быть в связке с QtCreator будет удобнее установить SDL2 через homebrew?
$tatic
Мне такое вариант не подходит, я хотел бы как на линуксе или винде просто подключить.
> Мне такое вариант не подходит, я хотел бы как на линуксе или винде просто подключить.
> как на линуксе
Так ведь и будет как на линуксе:
brew install SDL2
Библиотека скачается и установится в /usr/local/include и /usr/local/lib (реально, конечно, там будут симлинки на директории, но это роли не играет).
Скачал исходники SDL2 , собрал через XCode, создал новый проект в xcode подключил к проекту библиотеку, вставил тот же код, он завелся, создалось окно.Теперь осталось только под Qt понять что не так.(Код идентичен, как и библиотека и компилятор только один).
т.е как ИТОГ:
Собранная библиотека
- при подключении к проекту в xcode запускается
- при подключении к проекту в qtcreator повляются ошибки
Библиотека одна.
Код один.
Ошибка поменялась теперь он находит библиотеку:
Edisoni
Вот ведь упёртое создание :)
Предполагаю, что ошибка symbol(s) not found связана с отсутствием символа _SDL_main. В случае с homebrew-версией это легко решается добавлением ключа -lSDL2main, а вот как победить эту ошибку в случае с фреймворком SDL2 и сборкой в QtCreator или вручную разобраться не получилось. В составе фреймворка SDL1 шёл, кстати говоря, файлик SDL_main.m, с которым нужно было собирать свою программу. В SDL2 почему-то его нет.
Установил через brew SDL2.
Подключил, ошибка осталась та же.
Edisoni
> Подключил, ошибка осталась та же.
-lSDL2main -lSDL2 — порядок очень важен
$tatic
Как то не удалось.
Ошибка осталась
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)
Тема в архиве.