Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
4 / 4 / 1
Регистрация: 23.01.2013
Сообщений: 45

Как правильно подключить библиотеку SDL

07.09.2014, 14:19. Показов 4061. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите, пожалуйста, как правильно подключить библиотеку SDL.
Я пользуюсь компилятором Code::Blocks.
При подключении SDL появляется ошибка:
undefined reference to `WinMain@16'
Скажите, пожалуйста, как это исправить.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.09.2014, 14:19
Ответы с готовыми решениями:

SDL 2. Как правильно прилинковать/подключить к Visual Studio?
Я пересмотрел много материалов по этой теме, но никакие из них мне не помогли. 1. Подключил инклуды. 2. Подключил либы (Файлы *.lib) ...

Как вывести текст на экран, используя библиотеку SDL TTF для SDL 2?
В официальной доке как-то скомкано написано. При инициализации SDL TTF и при загрузке шрифта ошибок нет. Но текст на экране не...

Как правильно подключить данную библиотеку ?
Доброго времени суток подскажите пожалуйста как правильно подключить данную библиотеку в C++Builder 10.1 Berlin скачка библиотеки...

13
Заблокирован
07.09.2014, 14:45
Ну так ты наверное пытаешься подключить библиотеки к консольному проекту, а нужно к проекту Win32
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.09.2014, 15:59
Цитата Сообщение от albert! Посмотреть сообщение
Скажите, пожалуйста, как это исправить.
Точку входа вот такую сделайте:
C++
1
2
int main(int argc, char *argv[])
{...
0
4 / 4 / 1
Регистрация: 23.01.2013
Сообщений: 45
07.09.2014, 17:31  [ТС]
-NEURON-,Я уже не помню, к какому подключаю, а всё заново переписывать не хочется. Если проект консольный, то к нему же, наверное, тоже можно подключить SDL. Не подскажете как?(GLUT работает без проблем)
_________
Alsav, функция main выглядит именно так.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.09.2014, 18:05
Цитата Сообщение от albert! Посмотреть сообщение
функция main выглядит именно так.
Код давайте.
0
4 / 4 / 1
Регистрация: 23.01.2013
Сообщений: 45
07.09.2014, 18:42  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Код давайте.
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
38
39
#include <windows.h>
#include <cmath>
#include <iostream>
#include <fstream>
#include <cstring>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <GL/GLaux.h>
#include <stdlib.h>
#include <SDL/SDL_image.h>
using namespace std;
...
int main(int argc,char* argv[])
{
 
    glutInit(&argc,argv);
    glutInitWindowSize(WinWid,WinHei);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
    glutCreateWindow("Map Editor");
    LoadTextures(5);
 
    for( int i=0; i < 6;i++)
    {
        cout <<Textures[i] << endl;
    }
    SetButtonInfo();
    glMatrixMode(GL_PROJECTION);
    gluOrtho2D (0.0,WinWid, 0.0,WinHei);
    glShadeModel(GL_FLAT);
    glutReshapeFunc(Reshape);
    glutDisplayFunc(Display);
    glutMouseFunc(Mouse);
    glutKeyboardFunc(Keyboard);
    glutTimerFunc(50,Timer,0);
    glutMainLoop();
 
    return 0;
}
Более подробный код давать?
0
Заблокирован
07.09.2014, 18:50
OpenGL сделан не для консольных проектов. Попробуй заменить свой код на этот:
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
38
39
40
41
42
#include <tchar.h>
#include <windows.h>
#include <cmath>
#include <iostream>
#include <fstream>
#include <cstring>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <GL/GLaux.h>
#include <stdlib.h>
#include <SDL/SDL_image.h>
using namespace std;
...
int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPTSTR lpCmdLine, _In_ int nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);
 
    glutInit(&argc, argv);
    glutInitWindowSize(WinWid, WinHei);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
    glutCreateWindow("Map Editor");
    LoadTextures(5);
 
    for (int i = 0; i < 6; i++)
    {
        cout << Textures[i] << endl;
    }
    SetButtonInfo();
    glMatrixMode(GL_PROJECTION);
    gluOrtho2D(0.0, WinWid, 0.0, WinHei);
    glShadeModel(GL_FLAT);
    glutReshapeFunc(Reshape);
    glutDisplayFunc(Display);
    glutMouseFunc(Mouse);
    glutKeyboardFunc(Keyboard);
    glutTimerFunc(50, Timer, 0);
    glutMainLoop();
 
    return 0;
}
0
4 / 4 / 1
Регистрация: 23.01.2013
Сообщений: 45
07.09.2014, 19:22  [ТС]
Цитата Сообщение от -NEURON- Посмотреть сообщение
OpenGL сделан не для консольных проектов. Попробуй заменить свой код на этот:
Теперь вот какая ошибка
C++
1
2
3
4
5
6
7
8
9
10
11
12
Stockpiles\main.cpp|220|warning: `__stdcall__' attribute only applies to function types|
Stockpiles\main.cpp|220|error: `int WinMain' redeclared as different kind of symbol|
E:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\winbase.h|1040|error: previous declaration of `int WinMain(HINSTANCE__*, HINSTANCE__*, CHAR*, int)'|
Stockpiles\main.cpp|220|error: declaration of `int WinMain'|
E:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\winbase.h|1040|error: conflicts with previous declaration `int WinMain(HINSTANCE__*, HINSTANCE__*, CHAR*, int)'|
Stockpiles\main.cpp|220|error: `_In_' was not declared in this scope|
Stockpiles\main.cpp|220|error: `_In_opt_' was not declared in this scope|
Stockpiles\main.cpp|220|error: `_In_' was not declared in this scope|
Stockpiles\main.cpp|220|error: `_In_' was not declared in this scope|
Stockpiles\main.cpp|221|error: initializer expression list treated as compound expression|
Stockpiles\main.cpp|221|error: expected `,' or `;' before '{' token|
||=== Build finished: 10 errors, 1 warnings ===|
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.09.2014, 20:18
Так тут не только SDL... Если точку входа такую сделать?
C++
1
2
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{...
0
4 / 4 / 1
Регистрация: 23.01.2013
Сообщений: 45
07.09.2014, 21:00  [ТС]
А чем тогда заменить argc и argv? Они же используются в функции glutInint
0
1 / 1 / 0
Регистрация: 23.08.2014
Сообщений: 8
07.09.2014, 21:31
Может поможет
http://lazyfoo.net/tutorials/S... /index.php
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
08.09.2014, 00:53
Цитата Сообщение от -NEURON- Посмотреть сообщение
OpenGL сделан не для консольных проектов
OpenGL сделан не для оконных проектов!!! ошибка
Цитата Сообщение от albert! Посмотреть сообщение
undefined reference to `WinMain@16'
не имеет никакого отношения к OpenGL/консоли/окнам.
точка входа main, что WinMain, да хоть и MyMain указывается в опциях проекта сборки
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.09.2014, 06:25
Лучший ответ Сообщение было отмечено albert! как решение

Решение

Цитата Сообщение от albert! Посмотреть сообщение
При подключении SDL появляется ошибка:
undefined reference to `WinMain@16'
Скажите, пожалуйста, как это исправить.
Выше #include <SDL/SDL_image.h> прописать:
C++
1
#define SDL_MAIN_HANDLED
1
4 / 4 / 1
Регистрация: 23.01.2013
Сообщений: 45
08.09.2014, 13:28  [ТС]
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.09.2014, 13:28
Помогаю со студенческими работами здесь

Как правильно подключить свою библиотеку?
Здравствуйте всем. Я использую Visual Studio. В одном решении у меня находится проект библиотеки SEAL и проект SEALStart, из которого я...

Как правильно подключить curl библиотеку?
Здравствуйте, я хотел в своем проекте использовать библиотеку curl, для этого я: 1. Скачал архив з оф. сайта. 2. Затем по инструкции в...

Как внедрить графическую библиотеку SDL в Visual Studio 2012
Никогда не внедрял сторонних библиотек в Visual Studio. В инете поискал, но так ничего и не понял. Я вообще хочу подключить SDL 2.0 (качал...

Как подключить dll и lib SDL?
как подключить к проекту(в Visual Studio 2010) библиотеку SDL?// есть SDL.dll, SDL.lib и SDLmain.lib и еще папка с include'ами

Как подключить SDL 2.0 в проекте с CMake?
Я использую IDE CLion. Я хочу подключить библиотеку SDL 2.0 в CMakeList.txt. Я прочитал, что CMake сам может искать библиотеки, но как и...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru