Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Установка SDL2 на tcc  (Прочитано 478 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Aether
Опытный

ru
Offline Offline
Пол: Мужской

« : 24-10-2016 12:31 » 

Добрый день.

Задался целью таки попробовать освоить SDL (http://www.libsdl.org/index.php). Прельщает две вещи: кроссплатформенность плюс использование именно "С".

Итак, скачал исходники, чтобы получить заголовочные файлы. Скачал бинарники для win32 в виде DLL библиотеки. Однако, не всё так просто. Набрал первый тестовый код:
Код: (C)
#include <windows.h>
#include "SDL/include/SDL.h"

int main(int argc, char *argv[])
{
return 0;
}
Собственно код как бы ничего не делает, но фишка в том, что SDL заменяет макросом main на SDL_main, а затем вставляет свою шапку WinMain в случае, если обнаруженная им при компиляции платформа является Windows.
Ладно, первое, что отвалилось:
...undefined symbol main...
и процесс не идёт...
Поковырявшись, понял, что включать собственноручно windows.h не стоит, и исключив его, дело сдвинулось дальше, однако, возникла новая ошибка:
SDL/include/SDL_platform.h:175: error: declaration for parameter '__cdecl' but no such parameter
Она ссылается на:
extern DECLSPEC const char * SDLCALL SDL_GetPlatform (void);
Как понимаю, эту функцию он берёт из DLL, к которой я сгенерировал def файл и включил его в проект. Тем не менее, не совсем понимаю что он хочет ещё?

Может кто сталкивался или есть идеи? Или я чего забыл?

tcc -LSDL/include -ISDL/include SDL2.def first_sdl.c

Добавлено через 2 минуты и 19 секунд:
В принципе, можно пользоваться нужными функциями, через LoadLibrary и собственноручно написанный хедер, но хочется по людски.

Добавлено через 3 часа, 39 минут и 14 секунд:
Что странно mingw это переработал:
gcc first_sdl.c -I"C:\SDL\SDL2-2.0.5\i686-w64-mingw32\include\SDL2" -L"C:\SDL\SDL2-2.0.5\i686-w64-mingw32\lib" -lmingw32 -lSDL2main -lSDL2 -o first.exe
« Последнее редактирование: 24-10-2016 16:15 от Aether » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines