Как подключить sdl к Visual Studio 2019

Обновлено: 20.11.2024

Включает рекомендуемые проверки жизненного цикла разработки безопасности (SDL). Эти проверки превращают предупреждения, связанные с безопасностью, в ошибки и устанавливают дополнительные безопасные функции генерации кода.

Синтаксис

Примечания

/sdl включает расширенный набор базовых проверок безопасности, предоставляемых /GS, и переопределяет /GS- . По умолчанию /sdl отключен. /sdl — отключает дополнительные проверки безопасности.

Проверки во время компиляции

/sdl включает эти предупреждения как ошибки:

< tbody>
Предупреждение, включенное параметром /sdl Эквивалентный параметр командной строки Описание
C4146 /we4146 Унарный оператор минус был применен к беззнаковому типу, что привело к беззнаковому результату.
C4308 /we4308 Отрицательная целочисленная константа, преобразованная в тип без знака, что может привести к бессмысленному результату.
C4532 /we4532 Использование ключевых слов continue, break или goto в блоке __finally/finally имеет неопределенное поведение во время аварийного завершения.
C4533 /we4533 Код, инициализирующий переменную, не будет выполнен.
C4700 /we4700 Использование неинициализированной локальной переменной.
C4703 /we4703 Использование потенциально неинициализированной локальной переменной-указателя.
C4789 /we4789 Переполнение буфера при определенном времени выполнения C ( ЭЛТ) работает повторно используется.
C4995 /we4995 Использование функции, помеченной прагмой, не рекомендуется.
C4996 /we4996 Использование функции, помеченной как устаревшая .

Проверки во время выполнения

Если параметр /sdl включен, компилятор генерирует код, выполняющий следующие проверки во время выполнения:

Выполняет ограниченную очистку указателя. В выражениях, не использующих разыменования, и в типах, не имеющих определяемого пользователем деструктора, ссылки указателя устанавливаются на недопустимый адрес после вызова delete . Такая очистка помогает предотвратить повторное использование устаревших ссылок на указатели.

Инициализирует указатели членов класса. Автоматически инициализирует члены класса типа указателя значением nullptr при создании экземпляра объекта (до запуска конструктора). Это помогает предотвратить использование неинициализированных указателей, которые конструктор не инициализирует явно. Инициализация сгенерированного компилятором указателя на элемент вызывается до тех пор, пока:

Объект не выделяется с помощью пользовательского (определяемого пользователем) оператора new

Объект не выделяется как часть массива (например, new A[x] )

Курс не управляется и не импортируется

Класс имеет определяемый пользователем конструктор по умолчанию.

Чтобы быть инициализированным функцией инициализации класса, созданной компилятором, член должен быть указателем, а не свойством или константой.

Чтобы установить этот параметр компилятора в среде разработки Visual Studio

Откройте диалоговое окно "Страницы свойств" проекта. Дополнительные сведения см. в разделе Настройка компилятора C++ и свойств сборки в Visual Studio.

Выберите страницу свойств конфигурации > C/C++ > Общие свойства.

Задайте свойство SDL-проверки с помощью раскрывающегося списка свойств. Нажмите «ОК» или «Применить», чтобы сохранить изменения.

1) Первое, что вам нужно сделать, это загрузить заголовки и двоичные файлы SDL 2. Вы найдете их на веб-сайте SDL, а именно на этой странице.

Вам потребуется загрузить библиотеки разработки Visual C++.

Откройте zip-архив, и там должна быть папка с именем SDL2-2.something.something. Скопируйте содержимое папки и поместите его в любое место. Я рекомендую поместить его в папку, предназначенную для хранения всех ваших библиотек разработки для Visual C++. Для этих руководств я помещаю их в созданный мной каталог с именем C:\vclib

2) Запустите Visual Studio и создайте новый пустой проект C++.

Дайте своему проекту/решению любое имя и размещайте его там, где хотите.

3) Загрузите исходный код урока 01 и извлеките исходный файл. Щелкните правой кнопкой мыши папку с исходными файлами в своем решении и добавьте загруженный исходный файл.

В оставшейся части этого руководства мы будем предполагать, что вы собираете для отладки x64, поэтому убедитесь, что ваша конфигурация настроена на отладку x64.Поскольку библиотеки различаются для каждой конфигурации, вам потребуется добавить SDL в каждую конфигурацию, которую вы планируете использовать. Поэтому, если вы хотите выполнить сборку для Release x64 или Debug x86, вам потребуется добавить SDL2 в каждую конфигурацию.

5)Создайте свое решение, и вы должны получить следующую ошибку:

Не удается открыть включаемый файл: «SDL.h»: нет такого файла или каталога

Это означает, что Visual C++ не может найти заголовочные файлы SDL, и вам необходимо добавить папку включения SDL в каталоги включения Visual C++.

Перейти к свойствам проекта:

неразрешенный внешний символ SDL_GetError, указанный в функции SDL_main

Файл заголовка сообщает компилятору, что такое функции SDL, а не где их найти. Файл библиотеки сообщает компилятору, где они находятся, и нам нужно указать ему использовать файл библиотеки SDL. Перейдите в Свойства конфигурации -> Компоновщик -> Дополнительные зависимости -> Изменить.

SDL2.lib; SDL2main.lib;

не удается открыть файл 'SDL2.lib'

Хотя мы указали Visual C++ на использование файлов библиотеки SDL, мы не указали, где их найти. Добавьте каталог библиотеки так же, как и каталог include


Обязательно добавьте библиотеку, соответствующую конфигурации вашей сборки. Если ваша сборка для x64, обязательно используйте библиотеку x64.

Выполнение кода не может быть продолжено, так как SDL2.dll не найден.

Это связано с тем, что вашему приложению требуется SDL2.dll для запуска, но вы не можете его найти. Windows использует переменные среды, чтобы определить, где искать DLL-файлы. Чтобы отредактировать переменную среды PATH, перейдите в настройки Windows и выполните поиск по запросу изменить системные переменные среды:

Перезапустите Visual Studio, чтобы Visual C++ мог получить обновленную переменную пути, запустить вашу программу, и она должна работать.

Теперь, когда вы скомпилировали SDL 2, пришло время перейти ко второй части руководства.

Это первое из нескольких более длинных руководств, связанных с игрой. Вы увидите, что я добавил ссылку на учебники в верхнее меню. Эта страница будет расти по мере того, как я добавляю учебные пособия по мере их добавления на нее.

Вы увидите, что я использую термины SDL и SDL2 в основном как синонимы. SDL — это название библиотеки, но нам не нужна более старая SDL1, вместо этого нам нужна SDL2, которая кажется более или менее постоянной в версии 2.0.12.

Я не включил версию Visual Studio, так как процесс в основном одинаков, будь то Visual Studio 2017, 2019 или будущие версии. Снимки экрана взяты из Visual Studio 2019.

В Linux это не обязательно делать, так как для добавления различных модулей разработки SDL2 требуется три или четыре sudo apt install, но в Windows вам нужно настроить Visual Studio и может быть несколько запутанным процессом, если вы новичок в Visual Studio.

Также вам необходимо загрузить и получить различные файлы. Это немного усложняется, поскольку существуют 32-разрядная и 64-разрядная версии, и вы хотите сохранить их обе, чтобы иметь возможность переключаться между ними.

Вот несколько шагов, которые нам нужно пройти.

  1. Скачайте различные файлы и распакуйте их.
  2. Настройка путей include и lib в Visual Studio
  3. Добавьте файлы библиотеки в Visual Studio.
  4. Скопируйте dll в папку, где будет запускаться игра.
  5. Скомпилируйте и запустите его.

Вы скачиваете в основном файлы трех типов.

Скачать различные файлы и разархивировать их

Однако нам нужны библиотеки разработки.К ним относятся двоичные файлы среды выполнения, поэтому нам не нужно их загружать. также. Всего один файл SDL2-devel-2.0.12-VC.zip

Я предлагаю вам создать папку SDL или SDL2 на вашем диске. Мой диск C: предназначен для Windows, поэтому я использую d:\SDL2

Если вы распакуете файлы туда, вы получите три папки и пять файлов .txt. Всего чуть менее 7 МБ. Помимо документов есть include и lib. Папка lib дополнительно разделена на x64 (64-разрядная версия) и x86 (32-разрядная версия). Он также включает библиотеки DLL времени выполнения. Они должны быть в пути к вашей программе, но мы оставим это на потом.

Звуки, изображения и шрифты Truetype

Помимо этого, вам, вероятно, понадобится поддержка файлов изображений, звуков и, возможно, поддержка шрифтов truetype в вашей программе. Это отдельные файлы в папке проектов SDL.

  1. Поддержка файлов изображений. Загрузите файл библиотеки разработки со страницы sdl_image. Как и раньше, вам нужен файл библиотеки разработки. SDL2_image-devel-2.0.5-VC.zip.
  2. Поддержка звуковых файлов. Загрузите библиотеку разработки со страницы микшера sdl. Это SDL2_mixer-devel-2.0.4-VC.zip.
  3. Поддержка файлов ttf. Еще раз библиотека для разработки, загруженная со страницы проекта SDL_ttf. Это SDL2_ttf-devel-2.0.15-VC.zip.

Все три файла имеют схожую структуру с библиотекой разработки SDL2. Разархивируйте включаемые файлы в папку include SDL, а файлы lib — в соответствующие подпапки X86 и X64 lib. Таким образом, все ваши файлы SDL, которые вам нужны, находятся в одних и тех же подпапках include и lib.

Я предлагаю вам извлечь папки с файлами одну за другой, сначала включить три файла, затем файлы x64, а затем файлы x86. Не путайте x86 и x64. Единственный способ отличить их друг от друга — по размеру, и это не всегда точный способ. Не волнуйтесь, если он жалуется на перезапись zlib1.dll. В zip-файлах с изображениями и звуками есть копии.

Настройка путей include и lib в Visual Studio

Это может быть немного сложно, просто точно следуйте этим инструкциям.

Чтобы настроить проект C/C++ в Visual Studio, вы должны указать, откуда компилятор получает включаемые файлы, где он находит свои файлы lib и на какие файлы lib вы хотите связать.

Я создал пустой проект C++ с именем sdltest в VS 2019. Теперь я действительно хочу, чтобы это был проект C, поэтому просто переименуйте основной файл sdltest.cpp в sdltest.c. Вам также необходимо удалить весь код C++ в этом файле. После переименования обозреватель решений должен выглядеть примерно так. У нас будет программа sdltest для запуска позже, поэтому просто сохраните ее сейчас. Вы можете получить файл с GitHub и перезаписать sdltest.c.

Теперь нажмите «Проект» в верхнем меню, затем выберите свойства sdltest в нижней части меню. Вы должны увидеть эту форму (ниже). Вот как вы указываете свойства для своего проекта в Visual Studio.

Слева вы увидите, что я выбрал каталоги VC++. Здесь вы указываете некоторые каталоги (папки и каталоги означают одно и то же, кстати).

Но в раскрывающемся меню "Платформы", вероятно, указана Win32. Измените его на все платформы. Visual Studio позволяет указывать конфигурации для всех вещей или отдельно для x86 или x64. Мы будем использовать одни и те же включаемые папки как для x86, так и для x64, но пути к файлам библиотеки укажем индивидуально, поскольку файлы библиотеки x64 находятся в подпапке x64, а файлы x86 — в папке x86.


Чтобы указать путь, нажмите «Включить каталоги», справа появится стрелка вниз. Нажмите на нее, и вы увидите, щелкните по ней, и появится всплывающая форма, подобная этой ниже.
Нажмите на синюю область в форме, и вы сможете вставить или ввести путь или нажать кнопку …, чтобы открыть файловый браузер. Введите, вставьте или выберите папку, затем нажмите «ОК». Теперь вы должны увидеть свой путь в папках.

Здесь я ввел d:\SDL\Include. Будьте осторожны, чтобы не избавиться от $(VC_includePath);$(WindowsSDK_IncludePath); в путь включения, как я сделал, потому что ваша программа не будет компилироваться!

Теперь нам нужно сделать то же самое для путей к библиотекам. Но сначала мы должны изменить платформу, чтобы указать x86 или x64.

Если вы измените его, появится всплывающее окно с вопросом, хотите ли вы сохранить изменения. Нажмите кнопку Да.

Как ни странно, у меня выбор платформ — Win32 и x64, но Win32 — это то же самое, что и x86.

Вы увидите, что добавленный вами путь включения отображается на платформах x86/Win32, поскольку мы изменили его для всех платформ.

Теперь добавьте путь к каталогам библиотек. Затем щелкните стрелку вниз и введите полный путь к папке, соответствующей платформе. x86 для платформы Win32, x64 для платформы x64.После того, как вы введете его, он появится в каталогах.

Если вам нужны и x64, и x86, измените платформу и повторно введите ее. Не забудьте сохранить!

Добавьте файлы lib в Visual Studio

Последняя настройка, которую нужно сделать, это указать необходимые файлы lib. Мы указали пути для файлов include и lib, но компоновщик компилятора не знает, какие файлы lib нужно связать.

Поскольку связывание зависит от 32-разрядной или 64-разрядной версии, мы должны указать это дважды, как мы это сделали для путей к библиотекам. Он находится в другом месте на страницах свойств. Нажмите Linker, затем Input.

Это верхняя строка (Дополнительные зависимости), с которой нам нужно работать. Нажмите на нее, чтобы получить стрелку вниз, затем нажмите на нее и, как и раньше.

Вы, должно быть, заметили, что он поставляется с предварительно заполненными всеми файлами библиотеки .lib. Мы добавим еще немного. Нам нужны

SDl2.lib SDL2_mixer.lib SDL2_ttf.lib SDL2_image.lib и SDL2main.lib

Добавьте их в поле редактирования один за другим и нажимайте клавишу возврата после каждого.

После того как вы добавите их и нажмете "ОК", вы увидите их в списке. Что-то вроде этого, хотя я еще не добавил туда SDL2_ttf.lib.

Как и раньше, повторите для x86 и x64.

Теперь мы готовы к компиляции. Только для этого нам нужна программа. Я не буду перечислять весь sdltest, так как это 135 строк, но вы можете скачать проект VS в файле sdltest.zip с GitHub. Он должен скомпилироваться без ошибок. Если вы получаете ошибки, перепроверьте папки include и lib и убедитесь, что вы правильно их настроили.

Поэтому он компилируется, но не запускается. Если вы заглянете в папку Debug под x64 (или Win32, если вы ее построили), вы увидите множество файлов. но важен только sdltest.exe. Вы можете удалить остальные. Оставьте sdltest.pdb, если вы хотите выполнить отладку.

Скопируйте dll в папку, где будет запускаться игра

Это папка \sdltest\x64\Debug. Нам нужно несколько файлов .dll из той же папки lib, в которой хранятся библиотеки x64. (Опять же, если вы используете Win32, вам нужны dll из папки x86 lib).

Какие файлы нам нужны?

Просто SDL2.dll. Если бы мы использовали изображения, нам также понадобились бы sdl2_image.dll и zlib1.dll. В настоящее время нам не нужны SDL2_mixer.dll или SDL2_ttf.dll, но если вы когда-нибудь будете использовать звуки или Truetype, они вам понадобятся. Для звуков вам также понадобятся некоторые файлы lib*.dll, такие как libogg-0.dll или libvorbis-0.dll. Для изображения нам может понадобиться в будущем libjpeg-9.dll (если мы когда-нибудь будем использовать файлы jpg).

Итак, вы скомпилировали его и должны увидеть что-то подобное при запуске sdltest.exe. Он мало что делает, кроме как рисует цветные прямоугольники. Нажмите клавишу esc, чтобы закрыть его. На моем POC он рисует 100 000 цветных прямоугольников размером 120 x 120 пикселей каждый примерно за секунду. Это довольно быстро!

Основой программы является следующая функция:

Раскомментируйте две строки со значением 120; // Случайно(100) + 20; чтобы он рисовал прямоугольники случайного размера. Цифра в подписи показывает, сколько времени потребуется, чтобы нарисовать 100 000 прямоугольников.

Откройте свой проект и нажмите ALT + F7, чтобы открыть окно свойств. Перейдите в каталоги VC++, выберите «Включить каталоги» и выберите «Изменить». Добавьте путь к папке «include» в исходной папке SDL. $(ProjectDir) заменяется путем к вашему .

Как настроить SDL в Visual Studio 2019?

Откройте его > нажмите Создать новый проект > Пустой проект > Далее.

  1. В текстовом поле «Имя проекта» введите: SDL-0.
  2. Рядом с текстовым полем «Расположение» нажмите > Перейдите к C: > GLP > нажмите «Выбрать папку».
  3. Отметьте «Поместить решение и проект в один каталог» > нажмите «Создать». Дождитесь появления экземпляра Visual Studio 2019.

Что такое проверка SDL в Visual Studio?

Включает рекомендуемые проверки жизненного цикла разработки безопасности (SDL). Эти проверки превращают предупреждения, связанные с безопасностью, в ошибки и устанавливают дополнительные безопасные функции генерации кода.

Как настроить SDL?

Настройка библиотек SDL для Code::Blocks для компилятора Windows

Что такое проверки безопасности LifeCycle SDL?

Жизненный цикл разработки систем безопасности — это один из четырех основных компонентов безопасного программного обеспечения. SDL можно определить как процесс внедрения артефактов безопасности во весь программный цикл.Действия SDL должны быть сопоставлены с типичным жизненным циклом разработки программного обеспечения (SDLC) с использованием водопадного или гибкого метода.

Что такое DLL SDL2?

SDL2. dll представляет собой динамическую библиотеку для Windows. Это важный компонент, который обеспечивает правильную работу программ Windows. Таким образом, если sdl2. dll отсутствует, это может негативно сказаться на работе связанного с ним программного обеспечения.

Как связать SDL с блоками кода?

Действия по настройке SDL в CodeBlocks:

  1. Загрузите библиотеку SDL на свой компьютер.
  2. Загружаемый файл находится в формате Zip.
  3. Теперь скопируйте загруженный файл SDL.dll в папку Компьютер > Диск C > Program Files > CodeBlocks > MinGW > bin.
  4. Создайте новую папку на диске C с именем SDL.
  5. Откройте IDE Code::Blocks.

Как исправить отсутствие dll SDL2 на моем компьютере?

Способ 1. Замена рабочей версии SDL2. DLL

  1. Загрузите SDL2.dll отсюда (32- и 64-разрядная версии)
  2. Щелкните правой кнопкой мыши файл dll и выберите "Копировать".
  3. Перейдите к расположению программных файлов приложения.
  4. В каталоге приложения.
  5. Снова запустите приложение и убедитесь, что ошибка устранена.

Как настроить SDL с помощью Visual Studio?

При загрузке установите флажок Разработка для настольных ПК с рабочей нагрузкой C++. При необходимости прокрутите страницу вниз. Создайте папку ГЛ. В каталоге (диске) C: щелкните правой кнопкой мыши > выберите «Создать» > «Папка» > введите GL Почему sdl2.dll не найден в Windows?

Выполнение кода не может быть продолжено, так как SDL2.dll не найден. Это связано с тем, что вашему приложению требуется SDL2.dll для запуска, но вы не можете его найти. Windows использует переменные среды, чтобы определить, где искать DLL-файлы. Чтобы отредактировать переменную среды PATH, перейдите в настройки Windows и выполните поиск по запросу изменить системные переменные среды:

Что такое простой слой DirectMedia в Visual Studio?

Simple DirectMedia Layer (SDL) — это библиотека, совместимая с C++, которая обеспечивает простой низкоуровневый доступ к графическим функциям различных платформ. Из этой статьи вы узнаете, как установить и настроить SDL с помощью Visual Studio 2019 для Windows.

Где я могу скачать последнюю версию SDL?

Загрузка SDL Создайте папку SDL. В каталоге (диске) C: щелкните правой кнопкой мыши > выберите "Создать" > "Папка" > введите SDL. Как настроить SDL?

Что такое библиотека SDL в C++?

SDL — это Simple DirectMedia Layer. Это кроссплатформенная библиотека разработки, предназначенная для обеспечения низкоуровневого доступа к аудио, клавиатуре, мыши, джойстику и графическому оборудованию через OpenGL и Direct3D. Ее можно использовать для создания анимации и видеоигр. .

Как получить SDL2?

Настройка SDL 2 в Linux

  1. apt-cache search libsdl2. Вам нужно загрузить разрабатываемую версию SDL 2.
  2. apt-get устанавливает libsdl2-dev. 2) Если вы используете программу обновления Yellow Dog, Modified (используется в Fedora и CentOS), вы можете ввести команду:
  3. yum search SDL2-devel.
  4. ням, установите SDL2-devel.
  5. ./настроить.
  6. сделать все.
  7. выполнить установку.

Как установить SDL2 в Windows?

Перейдите на страницу загрузки SDL2 и загрузите последнюю версию библиотеки разработки для Windows с помощью MinGW. После извлечения содержимого с помощью, например, 7-Zip, скопируйте папку «x86_64-w64-mingw32» туда, где вы хотите хранить библиотеку. Обратите внимание, что это по-прежнему 64-разрядная версия библиотеки.

Является ли SDL C или C++?

Может ли SDL2 работать с 3D?

Есть ли у SDL2 возможность отображать объекты в 3D (т. е. создавать кубы, сферы и т. д.)

Где мне разместить SDL в моем Каталоге?

Скопируйте SDL2.dll из соответствующего каталога bin в каталог, где будет создан исполняемый файл. (Примечание. На самом деле вы можете поместить SDL2.dll в любой каталог на вашем пути. Однако это может привести к конфликту версий, если вы установили какие-либо приложения, использующие SDL.

Что можно делать с библиотекой SDL?

SDL — это Simple DirectMedia Layer. Это кроссплатформенная библиотека разработки, предназначенная для обеспечения низкоуровневого доступа к аудио, клавиатуре, мыши, джойстику и графическому оборудованию через OpenGL и Direct3D. Ее можно использовать для создания анимации и видеоигр. .

Как связать файлы SDL в Visual Studio?

Читайте также: