Создал игрушку на SDL2+OpenGL, на Убунту. Теперь хочу протестировать её на Windows. Скачал я от сюда http://libsdl.org/download-2.0.php вот это SDL2-devel-2.0.3-mingw.tar.gz (MinGW 32/64-bit) , распокавал, скопировал папки include и lib и закинул их в свой CodeBlocks в папку MinGW.
Написал мелкую программку для проверки, либы тоже подключил http://ipic.su/img/img7/fs/bbb.1439888728.jpg
Код
#include "SDL2/SDL.h"
int main() { if(SDL_Init(SDL_INIT_VIDEO) < 0) { return false; }
||=== Build: Debug in glsl_sdl_project69 (compiler: GNU GCC Compiler) ===| obj\Debug\main.o||In function `Z8SDL_mainv':| D:\server\glsl_sdl_project69\main.cpp|5|undefined reference to `SDL_Init'| D:\server\glsl_sdl_project69\main.cpp|14|undefined reference to `SDL_CreateWindow'| D:\server\glsl_sdl_project69\main.cpp|19|undefined reference to `SDL_Delay'| c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\..\..\..\libmingw32.a(main.o):main.c:(.text.startup+0xa7)||undefined reference to `WinMain@16'| ||=== Build failed: 4 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Если не ошибаюсь, что-то не то с либами, но я ведь их подключил. Или нужно ещё что-то подключить? Тяжко как-то с Виндовз работать=(
Кроме SDL, мне нужно ещё к проекту своему подключить OpenSSL и Boost. Их вроде бы собирать как-то нужно. Сперва надо с SDL разобраться, а потом к ним перейду.
Посоветуйте пожалуйста, как на Windows в CodeBlocks заставить работать SDL2?
Добавлено (18 августа 2015, 12:20) --------------------------------------------- Кстати файл SDL2.dll закинул в папку system32. Редактировать предыдущее сообщение не смог, на Windows по ходу доисторический браузер у меня стоит.
Вот тебе туториал. Подключай по нему, не ошибешься. С Boost у меня лично проблем никаких не было - статьи по подключению в инете есть. С OpenSSL не работал, не знаю. Параноик с гениальным планом по захвату мира.
Похоже все-таки то, что ты не подключил библиотеки, так как не может найти ссылки на SDL_Init, SDL_CreateWindiw и SDL_Delay. Кроме того, что-то не так настроено, нет ссылки на функцию WinMain. Покажи какие параметры передаются компилятору.
Спасибо за тутор, оказалось что я не те либы и инклуды закинул, ещё оказалось что в проекты Windows нужно подключать libmingw32.a. Но вот теперь другая проблема возникла
Код
||=== Build: Debug in glsl_sdl_project69 (compiler: GNU GCC Compiler) ===| C:\Program Files\CodeBlocks\MinGW\lib\libSDL2main.a(SDL_windows_main.o):SDL_windows_main.c|| undefined reference to `SDL_main'| ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
You should be using main() instead of WinMain() even though you are creating a Windows application, because SDL provides a version of WinMain() which performs some SDL initialization before calling your main code. If for some reason you need to use WinMain(), take a look at the SDL source code in src/main/win32/SDL_main.c to see what kind of initialization you need to do in your WinMain() function so that SDL works properly.
Заменил int main() на int main(int argc, char *argv[]) и заработало.
Спасибо за помощь. Теперь попробую собрать Буст.
Добавлено (18 августа 2015, 15:48) --------------------------------------------- Собираю по этой статье http://knzsoft.blogspot.ru/2013/07/boost-windows-mingw.html
Остановился на этом
Теперь необходимо выполнить сборку специального инструмента bjam, который и будет управлять компиляций библиотеки boost под указанный компилятор. Чтобы собрать bjam под MinGW необходимо выполнить в директории C:/boost_1_52_0/ следующую команду.
> bootstrap.bat gcc
Результат выполнения http://ipic.su/img/img7/fs/aaa.1439901965.jpg