С Новым годом! Форум программистов, компьютерный форум, киберфорум
Кроссплатфор­менная разработка
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/71: Рейтинг темы: голосов - 71, средняя оценка - 4.79
 Аватар для globalhost
32 / 24 / 7
Регистрация: 01.08.2014
Сообщений: 115

SDL2: undefined reference to SDL_Init

18.11.2014, 08:04. Показов 18296. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Компилятор MinGW под Windows не пережевывает исходники с SDL2.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <SDL2/SDL.h>
#include <stdio.h>
 
int main(int argc, char* argv[]) {
 
    SDL_Window *window;                    // Declare a pointer
 
    SDL_Init(SDL_INIT_VIDEO);              // Initialize SDL2
 
    // Create an application window with the following settings:
    window = SDL_CreateWindow(
        "An SDL2 window",                  // window title
        SDL_WINDOWPOS_UNDEFINED,           // initial x position
        SDL_WINDOWPOS_UNDEFINED,           // initial y position
        640,                               // width, in pixels
        480,                               // height, in pixels
        SDL_WINDOW_OPENGL                  // flags - see below
    );
 
    // Check that the window was successfully made
    if (window == NULL) {
        // In the event that the window could not be made...
        printf("Could not create window: %s\n", SDL_GetError());
        return 1;
    }
 
    // The window is open: enter program loop (see SDL_PollEvent)
 
    SDL_Delay(3000);  // Pause execution for 3000 milliseconds, for example
 
    // Close and destroy the window
    SDL_DestroyWindow(window);
 
    // Clean up
    SDL_Quit();
    return 0;
}
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
C:\project>g++ test.cpp -lSDL2 -lSDL2main
C:\Users\GLOBAL~1\AppData\Local\Temp\ccq7s1Cb.o:test.cpp:(.text+0xe): undefined
reference to `SDL_Init`
C:\Users\GLOBAL~1\AppData\Local\Temp\ccq7s1Cb.o:test.cpp:(.text+0x42): undefined
 reference to `SDL_CreateWindow`
C:\Users\GLOBAL~1\AppData\Local\Temp\ccq7s1Cb.o:test.cpp:(.text+0x50): undefined
 reference to `SDL_GetError`
C:\Users\GLOBAL~1\AppData\Local\Temp\ccq7s1Cb.o:test.cpp:(.text+0x73): undefined
 reference to `SDL_Delay`
C:\Users\GLOBAL~1\AppData\Local\Temp\ccq7s1Cb.o:test.cpp:(.text+0x7e): undefined
 reference to `SDL_DestroyWindow`
C:\Users\GLOBAL~1\AppData\Local\Temp\ccq7s1Cb.o:test.cpp:(.text+0x83): undefined
 reference to `SDL_Quit`
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: C:\Users\G
LOBAL~1\AppData\Local\Temp\ccq7s1Cb.o: bad reloc address 0x20 in section `.eh_fr
ame`
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link
 failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
 
C:\project>
При установке делаю следующее: переношу содержимое из "SDL2-2.0.3\x86_64-w64-mingw32" в "C:\MinGW". DLL переношу в папку с программой. Системная переменная PATH содержит путь к компилятору ("C:\MinGW"). Заголовочный файл "SDL_platform.h" быть заменен на этот: http://stackoverflow.com/quest... codeblocks
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2014, 08:04
Ответы с готовыми решениями:

gtkmm undefined reference to...
Не могу понять что за ошибки, заранее спасибо #include &lt;gtkmm.h&gt; #include &lt;gtkmm/drawingarea.h&gt; #include...

Undefined reference to
Qt5 minGW Вылетает куча ошибок ошибка: undefined reference to `more_counter::more_counter(QDialog*)' ошибка: undefined reference to...

Undefined reference to в qtcreator
Здравствуйте, у меня такая проблема. Делаю небольшой проект на c++ в qt creator, для сборки использую cmake. При сборке выдает следующие...

9
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
18.11.2014, 08:21
При компиляции укажите ключ -L/путь/до/папки_с_libSDL2*.a
Либо скопируйте файлы libSDL2.a и libSDL2main.a в папку c:\mingw\x86_64-w64-mingw32\lib\
0
 Аватар для globalhost
32 / 24 / 7
Регистрация: 01.08.2014
Сообщений: 115
18.11.2014, 08:32  [ТС]
Code
1
g++ test.cpp -lSDL2 -lSDL2main -LC:\MinGW\lib
По прежнему не компилируется.
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
18.11.2014, 08:46
хм... похоже что вы пытаетесь прилинковать 64битную библиотеку 32битным компилятором...
Bash
1
g++ --version
Добавлено через 2 минуты
попробуйте ключ -m64
Bash
1
g++ -m64 test.cpp -lSDL2 -lSDL2main -LC:\MinGW\lib
0
 Аватар для globalhost
32 / 24 / 7
Регистрация: 01.08.2014
Сообщений: 115
18.11.2014, 08:49  [ТС]
Code
1
2
3
4
5
C:\project>g++ --version
g++ (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Code
1
2
3
4
5
C:\project>g++ test.cpp -lSDL2 -lSDL2main -LC:\MinGW\lib -IC:\MinGW\include -m64
 
test.cpp:1:0: sorry, unimplemented: 64-bit mode not compiled in
 #include <SDL2/SDL.h>
 ^
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
18.11.2014, 09:00
точно, у вас компилятор не поддерживает 64битный код
используйте *.a и *.dll из SDL2-devel-2.0.3-mingw.tar.gz\SDL2-2.0.3\lib\x86\
те 32битные версии
0
 Аватар для globalhost
32 / 24 / 7
Регистрация: 01.08.2014
Сообщений: 115
18.11.2014, 09:33  [ТС]
Кажется я понял, для 32 битки подключаю "-LC:\SDL2-2.0.3\i686-w64-mingw32\lib", но компилятор выдает следующее:

Code
1
2
3
4
5
D:\creation\games\Eightlegs Engine\project>g++ test.cpp -IC:\SDL2-2.0.3\i686-w64
-mingw32\include -LC:\SDL2-2.0.3\i686-w64-mingw32\lib -lSDL2main -lSDL2
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libmingw32.a(main.o):main.c:(.tex
t.startup+0xa7): undefined reference to `WinMain@16`
collect2.exe: error: ld returned 1 exit status
Добавлено через 5 минут
Нашел решение.

Code
1
g++ -IC:\SDL2-2.0.3\i686-w64-mingw32\include -LC:\SDL2-2.0.3\i686-w64-mingw32\lib test.cpp -lmingw32 -lSDL2main -lSDL2
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
18.11.2014, 09:40
Лучший ответ Сообщение было отмечено globalhost как решение

Решение

Bash
1
g++ -mwindows test.cpp -IC:\SDL2-2.0.3\include -LC:\SDL2-2.0.3\lib\x86 -lSDL2main -lSDL2
2
0 / 0 / 0
Регистрация: 16.04.2024
Сообщений: 1
16.04.2024, 20:11
globalhost, можешь помочь с подобной ошибкой?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <stdlib.h>
#include "inc/SDL.h"
 
#undef main
 
void main()
{
    SDL_Renderer *rendere;
    SDL_Window *window = NULL;
 
    if (SDL_Init(SDL_INIT_EVERYTHING) != 0) 
        printf("error initializing SDL: %s\n", SDL_GetError());
    else
    {
        window = SDL_CreateWindow("SDL Tutorial",
                                   SDL_WINDOWPOS_CENTERED_MASK,
                                   SDL_WINDOWPOS_CENTERED_MASK,
                                   640,
                                   480,
                                   SDL_WINDOW_SHOWN);
        if (window == NULL)
            printf("Window created erroe: %s\n", SDL_GetError());
        else 
        {
            SDL_UpdateWindowSurface(window);
            SDL_Delay(20000);
        }
    }
    SDL_DestroyWindow(window);
    SDL_Quit();
}
Code
1
2
3
4
5
6
7
8
9
10
11
12
PS C:\Users\Анастасия\Desktop\Текстыпрограмм\Пакмен> gcc -Llib main.c -lSDL2
PS C:\Users\Анастасия\Desktop\Текстыпрограмм\Пакмен> ./a
PS C:\Users\Анастасия\Desktop\Текстыпрограмм\Пакмен> cd "c:\Users\Анастасия\Desktop\Текстыпрограмм\Пакмен" ; if ($?) { gcc main.c -o main } ; if ($?) { .\main }
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c:(.text+0x1e): undefined reference to `SDL_Init'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c:(.text+0x27): undefined reference to `SDL_GetError'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c:(.text+0x6d): undefined reference to `SDL_CreateWindow'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c:(.text+0x7d): undefined reference to `SDL_GetError'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c:(.text+0x9b): undefined reference to `SDL_UpdateWindowSurface'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c:(.text+0xa7): undefined reference to `SDL_Delay'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c:(.text+0xb3): undefined reference to `SDL_DestroyWindow'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c:(.text+0xb8): undefined reference to `SDL_Quit'
collect2.exe: error: ld returned 1 exit status
Добавлено через 5 минут
Max Dark, Max Dark, можешь помочь с подобной ошибкой?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <stdlib.h>
#include "inc/SDL.h"
 
#undef main
 
void main()
{
SDL_Renderer *rendere;
SDL_Window *window = NULL;
 
if (SDL_Init(SDL_INIT_EVERYTHING) != 0)
printf("error initializing SDL: %s\n", SDL_GetError());
else
{
window = SDL_CreateWindow("SDL Tutorial",
SDL_WINDOWPOS_CENTERED_MASK,
SDL_WINDOWPOS_CENTERED_MASK,
640,
480,
SDL_WINDOW_SHOWN);
if (window == NULL)
printf("Window created erroe: %s\n", SDL_GetError());
else
{
SDL_UpdateWindowSurface(window);
SDL_Delay(20000);
}
}
SDL_DestroyWindow(window);
SDL_Quit();
}
Code
1
2
3
4
5
6
7
8
9
10
11
12
PS C:\Users\Анастасия\Desktop\Текстыпрограмм\Пакмен> gcc -Llib main.c -lSDL2
PS C:\Users\Анастасия\Desktop\Текстыпрограмм\Пакмен> ./a
PS C:\Users\Анастасия\Desktop\Текстыпрограмм\Пакмен> cd "c:\Users\Анастасия\Desktop\Текстыпрограмм\Пакмен" ; if ($?) { gcc main.c -o main } ; if ($?) { .\main }
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c.text+0x1e): undefined reference to `SDL_Init'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c.text+0x27): undefined reference to `SDL_GetError'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c.text+0x6d): undefined reference to `SDL_CreateWindow'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c.text+0x7d): undefined reference to `SDL_GetError'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c.text+0x9b): undefined reference to `SDL_UpdateWindowSurface'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c.text+0xa7): undefined reference to `SDL_Delay'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c.text+0xb3): undefined reference to `SDL_DestroyWindow'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\08DE~1\AppData\Local\Temp\cc5DLJak.o:main.c.text+0xb8): undefined reference to `SDL_Quit'
collect2.exe: error: ld returned 1 exit status
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
17.04.2024, 18:43
Цитата Сообщение от Anastaisha2425 Посмотреть сообщение
cd "c:\Users\Анастасия\Desktop\Текстыпрогра мм\Пакмен" ; if ($?) { gcc main.c -o main } ; if ($?) { .\main }
Вы запускаете компиляцию одного файла.
Причем без указания библиотек.

Чуть выше почти что нужная команда(только выходной файл не указан):
Цитата Сообщение от Anastaisha2425 Посмотреть сообщение
gcc -Llib main.c -lSDL2
Как настроить сборку зависит от Вашей IDE/редактора.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.04.2024, 18:43
Помогаю со студенческими работами здесь

Undefined reference to 'mclInitializeApplication_proxy'
Здравствуйте! В результате отладки проблема: &quot;undefined reference to 'mclInitializeApplication_proxy' &quot;. Подскажите, пожалуйста,...

Undefined reference to QNetworkAccessManager
Помогите пожалуйста, начал Qt изучать. Просмотрел стандартный пример Http со скачиванием файла и навелосипедил своё скачивание. При сборке...

Undefined reference to _mkgmtime32
Qt 5.3.1 MinGW. Проект собирается только в Debug-версии, а если выбрать Release, то сборка вылетает с ошибкой undefined reference to...

Undefined reference to `_imp
Продолжаю мучать проект monav-0.3. Пытаюсь скомпилировать его под винду (XP). Пытаюсь его скомпилировать с помощью Qt Creator 3.3.2...

Ошибка undefined reference to
Здравствуйте,столкнулся с проблемкой,никак не получается ее решить. Вот код: main: #include &lt;QApplication&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru