История изменений
Исправление EXL, (текущая версия) :
Суть в том, что при одновременной линковке библиотеки SDL1, которую ты линкуешь директивой -lSDL
и SDL2, которую ты линкуешь директивой $(sdl2-config --libs)
, у тебя получается неопределённое поведение. Оно даёт слинковать, потому что некоторые сущности и функции в этих библиотеках просто одинаковые и конфликтов с точки зрения компилятора нет: какой-нибудь SDL_Init()
уходит в дебри SDL1, а SDL_CreateWindow()
– в SDL2. При этом структуры обоих библиотек в памяти естественно разные, поэтому ничего толком не работает и выглядит странно.
Убери -lSDL
из флагов компиляции и этот корявенький пример должен заработать как ты хочешь.
Просто ты намешал всё в кучу:
$ ldd 3D_Modeling.compl | grep SDL
libSDL-1.2.so.0 => /lib/x86_64-linux-gnu/libSDL-1.2.so.0 (0x00007f7bc4f73000)
libSDL2-2.0.so.0 => /lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007f7bc4dd3000)
Исправление EXL, :
Суть в том, что при одновременной линковке библиотеки SDL1, которую ты линкуешь директивой -lSDL
и SDL2, которую ты линкуешь директивой $(sdl2-config --libs)
, у тебя получается неопределённое поведение. Оно даёт слинковать, потому некоторые сущности и функции в этих библиотеках просто одинаковые.
Убери -lSDL
из флагов компиляции и этот корявенький пример должен заработать как ты хочешь.
Просто ты намешал всё в кучу:
$ ldd 3D_Modeling.compl | grep SDL
libSDL-1.2.so.0 => /lib/x86_64-linux-gnu/libSDL-1.2.so.0 (0x00007f7bc4f73000)
libSDL2-2.0.so.0 => /lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007f7bc4dd3000)
Исходная версия EXL, :
Суть в том, что при одновременной линковке библиотеки SDL1, которую ты линкуешь директивой -lSDL
и SDL2, которую ты линкуешь директивой $(sdl2-config --libs)
, у тебя получается неопределённое поведение. Оно даёт слинковать, потому некоторые сущности и функции в этих библиотеках просто одинаковые.
Убери -lSDL
из флагов компиляции и пример должен заработать.