LINUX.ORG.RU

История изменений

Исправление 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 из флагов компиляции и пример должен заработать.