Не удается открыть исходный файл sfml graphics hpp

Обновлено: 29.06.2024

ваша программа уже запущена или загружена в отладчик, и

ваши пути к библиотекам неверны или не заключены в двойные кавычки.

Есть много других возможных причин этой ошибки. Чтобы сузить их, сначала проверьте, что это за файл filename. Затем используйте следующие разделы, чтобы найти и устранить конкретную проблему.

Не удается открыть ваше приложение или его файл .pdb

Ваше приложение запущено или загружено в отладчик

Если имя_файла – это имя вашего исполняемого файла или связанного файла .pdb, проверьте, запущено ли уже ваше приложение. Затем проверьте, загружен ли он в отладчике. Чтобы устранить эту проблему, остановите программу и выгрузите ее из отладчика перед повторной сборкой. Если приложение открыто в другой программе, например в редакторе ресурсов, закройте его. Если ваша программа не отвечает, вам может потребоваться использовать диспетчер задач, чтобы завершить процесс. Вам также может потребоваться закрыть и перезапустить Visual Studio.

Ваше приложение заблокировано антивирусной проверкой

Антивирусные программы часто временно блокируют доступ к вновь созданным файлам, особенно к исполняемым файлам .exe и .dll. Чтобы решить эту проблему, попробуйте исключить каталоги сборки вашего проекта из антивирусного сканера.

Не удается открыть файл библиотеки Microsoft

Библиотеки Windows, такие как kernel32.lib

Если файл, который не удается открыть, является одним из стандартных файлов библиотеки, предоставляемых Microsoft, например kernel32.lib, возможно, возникла ошибка конфигурации проекта или ошибка установки. Убедитесь, что Windows SDK установлен. Если для вашего проекта требуются другие библиотеки Microsoft, например MFC, убедитесь, что компоненты MFC также были установлены установщиком Visual Studio. Вы можете запустить программу установки еще раз, чтобы добавить дополнительные компоненты в любое время. Дополнительные сведения см. в разделе Изменение Visual Studio. Используйте вкладку Отдельные компоненты в установщике, чтобы выбрать определенные библиотеки и SDK.

Версионные библиотеки vcruntime

Если в сообщении об ошибке указана версия библиотеки Microsoft, например msvcr120.lib, набор инструментов платформы для этой версии компилятора может быть не установлен. Чтобы устранить эту проблему, у вас есть два варианта: обновить проект, чтобы использовать текущий набор инструментов платформы, или установить старый набор инструментов и построить проект без изменений. Дополнительную информацию см. в статьях Обновление проектов из более ранних версий Visual C++ и Использование встроенного мультитаргетинга в Visual Studio для создания старых проектов.

Продажные, отладочные или платформенные библиотеки

Эта ошибка может возникнуть при первой сборке для новой целевой платформы или конфигурации, например Retail или ARM64. В среде IDE убедитесь, что установлены набор инструментов платформы и версия Windows SDK, указанные на странице общих свойств. Также убедитесь, что необходимые библиотеки доступны в каталогах библиотек, указанных на странице свойств каталогов VC++. Проверьте свойства каждой конфигурации, например Debug, Retail, x86 или ARM64. Если одна сборка работает, а другая нет, сравните настройки для обеих. Установите все недостающие необходимые инструменты и библиотеки.

Библиотека vccorlib.lib

Для универсальных приложений или компонентов Windows (UWP) не существует библиотек, защищенных от Spectre. Если сообщение об ошибке включает vccorlib.lib, возможно, вы включили /Qspectre в проекте UWP. Отключите параметр компилятора /Qspectre, чтобы устранить эту проблему. В Visual Studio измените свойство Spectre Mitigation. Его можно найти на странице C/C++ > Генерация кода диалогового окна Страницы свойств проекта.

Библиотеки в проектах из Интернета или других источников

Если вы создаете проект, скопированный с другого компьютера, места установки библиотеки могут отличаться. Для сборок из командной строки убедитесь, что переменная среды LIB и пути к библиотекам заданы правильно для сборки. В Visual Studio вы можете просматривать и редактировать текущие пути к библиотекам, установленные на страницах свойств вашего проекта. На странице «Каталоги VC++» выберите раскрывающийся список для свойства «Каталоги библиотек», затем выберите «Изменить». В разделе «Оценочное значение» диалогового окна «Каталоги библиотек» перечислены текущие пути поиска файлов библиотек. Обновите эти пути, чтобы они указывали на ваши локальные библиотеки.

Обновлены библиотеки Windows SDK

Эта ошибка может возникнуть, если путь Visual Studio к Windows SDK устарел. Это может произойти, если вы устанавливаете новый Windows SDK независимо от установщика Visual Studio. Чтобы исправить это в среде IDE, обновите пути, указанные на странице свойств каталогов VC++. Установите версию в пути, соответствующую новому SDK. Если вы используете командную строку разработчика, обновите пакетный файл, который инициализирует переменные среды, указав новые пути SDK. Этой проблемы можно избежать, используя установщик Visual Studio для установки обновленных SDK.

Не удается открыть файл сторонней библиотеки

Есть несколько распространенных причин этой проблемы:

Путь к файлу библиотеки может быть неправильным или не заключенным в двойные кавычки. Или, возможно, вы не указали его компоновщику.

Возможно, вы установили 32-разрядную версию библиотеки, но собираете ее для 64-разрядной версии или наоборот.

Библиотека может иметь зависимости от других библиотек, которые не установлены.

Чтобы устранить проблему с путем для сборок из командной строки, убедитесь, что установлена ​​переменная среды LIB. Убедитесь, что он включает пути для всех используемых вами библиотек и для каждой конфигурации, которую вы создаете. В среде IDE пути к библиотекам задаются свойством Каталоги VC++ > Каталоги библиотек. Убедитесь, что здесь перечислены все каталоги, содержащие нужные вам библиотеки, для каждой создаваемой вами конфигурации.

Возможно, вам потребуется указать каталог библиотеки, который переопределяет стандартный каталог библиотеки. В командной строке используйте параметр /LIBPATH. В среде IDE используйте свойство «Дополнительные каталоги библиотек» на странице свойств «Свойства конфигурации» > «Компоновщик» > «Общие» для вашего проекта.

Убедитесь, что вы установили все версии библиотеки, необходимые для создаваемых вами конфигураций. Рассмотрите возможность использования утилиты управления пакетами vcpkg для автоматизации установки и настройки многих распространенных библиотек. Когда есть возможность, лучше всего создавать собственные копии сторонних библиотек. Тогда у вас наверняка будут все локальные зависимости библиотек, созданные для тех же конфигураций, что и ваш проект.

Не удается открыть файл, созданный вашим проектом

Эта ошибка может появиться, если имя_файла еще не существует, когда компоновщик пытается получить к нему доступ. Это может случиться, когда один проект зависит от другого в решении, но проекты строятся в неправильном порядке. Чтобы устранить эту проблему, убедитесь, что ссылки на ваш проект установлены в проекте, который использует файл. Затем отсутствующий файл создается до того, как он потребуется. Дополнительные сведения см. в разделах Добавление ссылок в проекты Visual Studio C++ и Управление ссылками в проекте.

Не удается открыть файл 'C:\Program.obj'

Если вы видите имя файла C:\Program.obj в сообщении об ошибке, заключите пути к библиотеке в двойные кавычки. Эта ошибка возникает, когда компоновщику передается развернутый путь, начинающийся с C:\Program Files. Развернутые пути также могут вызывать аналогичные ошибки. Как правило, они показывают неожиданный файл .obj в корневом каталоге вашего диска.

Чтобы устранить эту проблему для сборок из командной строки, проверьте параметры параметра /LIBPATH. Также проверьте пути, указанные в переменной среды LIB, и пути, указанные в командной строке. Обязательно заключайте в двойные кавычки все пути, содержащие пробелы.

Чтобы устранить эту проблему в среде IDE, при необходимости добавьте двойные кавычки к следующим свойствам вашего проекта:

Свойство Library Directorys на странице свойств Configuration Properties > VC++ Directorys,

Свойство «Дополнительные каталоги библиотек» на странице свойств «Свойства конфигурации» > «Компоновщик» > «Общие»,

Свойство Дополнительные зависимости на странице Свойства конфигурации > Компоновщик > Входное свойство.

Другие распространенные проблемы

Проблемы с путем или именем файла

Параллельная синхронизация сборки

Если вы используете параллельную сборку, Visual Studio может заблокировать файл в другом потоке. Чтобы устранить эту проблему, убедитесь, что один и тот же объект кода или библиотека не встроены в несколько проектов. Используйте зависимости сборки или ссылки на проект, чтобы подобрать встроенные двоичные файлы в свой проект.

Дополнительные зависимости, указанные в IDE

При непосредственном указании отдельных библиотек в свойстве Дополнительные зависимости используйте пробелы для разделения имен библиотек. Не используйте запятые или точки с запятой. Если вы используете элемент меню «Правка», чтобы открыть диалоговое окно «Дополнительные зависимости», используйте символы новой строки для разделения имен, а не запятые, точки с запятой или пробелы. Также используйте символы новой строки при указании путей к библиотекам в диалоговых окнах «Каталоги библиотек» и «Дополнительные каталоги библиотек».

Слишком длинные пути

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

Слишком большие файлы

Эта ошибка может возникнуть из-за слишком большого размера файла. Библиотеки или объектные файлы размером более гигабайта могут вызвать проблемы для 32-разрядного компоновщика. Возможное решение этой проблемы — использование 64-разрядного набора инструментов. Дополнительные сведения о том, как использовать 64-разрядный набор инструментов в командной строке, см. в разделе Практическое руководство. Включение 64-разрядного набора инструментов Visual C++ в командной строке. Сведения о том, как использовать 64-разрядный набор инструментов в среде IDE, см. в разделе Использование MSBuild с 64-разрядным компилятором и инструментами. Также см. этот пост о переполнении стека: Как заставить Visual Studio использовать нативную цепочку инструментов amd64.

Неправильные права доступа к файлу

Эта ошибка может возникнуть, если у вас недостаточно прав для доступа к файлу имя_файла.Это может произойти, если вы используете обычную учетную запись пользователя для доступа к файлам библиотеки в защищенных системных каталогах. Или, если вы используете файлы, скопированные у других пользователей, у которых все еще установлены исходные разрешения. Чтобы устранить эту проблему, переместите файл в доступный для записи каталог проекта. Если перемещенный файл имеет недоступные разрешения, запустите команду takeown.exe в командном окне администратора, чтобы стать владельцем файла.

Недостаточно места на диске

Эта ошибка может возникнуть, если у вас недостаточно места на диске. Компоновщик использует временные файлы в нескольких случаях. Даже если у вас достаточно места на диске, большая ссылка может истощить или фрагментировать доступное место на диске. Рассмотрите возможность использования параметра /OPT (оптимизация); выполнение транзитивного исключения COMDAT считывает все объектные файлы несколько раз.

Проблемы с переменной среды TMP

Если имя файла называется LNKnnn, это имя файла, сгенерированное компоновщиком для временного файла. Каталог, указанный в переменной среды TMP, может не существовать. Или для переменной среды TMP может быть указано несколько каталогов. Для переменной среды TMP должен быть указан только один путь к каталогу.

Помогите, моей проблемы здесь нет!

Если ни одна из перечисленных здесь проблем не применима, вы можете воспользоваться средствами обратной связи в Visual Studio. В среде IDE перейдите в строку меню и выберите «Справка» > «Отправить отзыв» > «Сообщить о проблеме». Или отправьте предложение, выбрав «Справка» > «Отправить отзыв» > «Отправить предложение». Вы также можете задать вопросы на сайте вопросов и ответов Microsoft Docs и на веб-сайте сообщества разработчиков Visual Studio C++. Используйте эти сайты для поиска ответов на вопросы и обращения за помощью. Дополнительные сведения см. в разделе Как сообщить о проблеме с набором инструментов Visual C++ или в документации.

Если вы обнаружили новый способ решения этой проблемы, который мы должны добавить в эту статью, сообщите нам об этом. Вы можете отправить нам отзыв, используя кнопку ниже на этой странице. Используйте его, чтобы создать новую задачу в нашем репозитории GitHub с документацией по C++. Спасибо!

В этом документе описывается, как установить SFML в Code::Blocks на компьютер для курса CS-11: Introduction to Programming Concepts and Methodology, C++. SFML — это бесплатная библиотека с открытым исходным кодом, которая предоставляет простой объектно-ориентированный интерфейс для графики, звука и других частей персонального компьютера. Он имеет пять основных модулей: системный, оконный, графический, аудио и сетевой. Поскольку это вводный курс, в нем рассматриваются не все варианты, например статические сборки.

Эти инструкции предполагают, что вы уже установили Code::Blocks, как описано в документе Как установить Code::Blocks в Windows. Если нет, сделайте это сейчас.

Для компьютеров с Linux установка SFML описана в разделе Как установить Code::Blocks и SFML для Linux. Для компьютеров Macintosh установка SFML описана в разделе Установка SFML в OS-X.

Б. Установка SFML

Внимательно следуйте этим инструкциям. НЕ продолжайте, не прочитав внимательно каждый шаг инструкций, иначе вы, вероятно, не сможете правильно установить программное обеспечение. Если вы сомневаетесь, попросите одноклассника или преподавателя проверить, что вы делаете.

Если вы не можете создать проект SFML после установки, вам потребуется переустановить Code::Blocks, SFML или оба.

    В папке CodeBlocks создайте новую папку с именем «sfml» (без кавычек). В эту папку вы установите файлы SFML.

Папка sfml

Если вы не уверены, загляните в папку CodeBlocks\MinGW\bin и проверьте, какие из dll-файлов libgcc_s_XXX были установлены Code::Blocks, где XXX — буквы в скобках. Если у вас несколько версий, выберите вариант SJLJ для SFML.

Двоичный файл для школьных компьютеров: GCC 4.8.1 TDM (SJLJ) — 32 бита. Вот обычный файл для класса:

Убедитесь, что у вас правильная структура папок. НЕ используйте дополнительные папки с файлами, такие как «SFML 2.4.2», в пути к файлу.

Папки и файлы SFML

  1. В меню слева убедитесь, что выбраны глобальные настройки компилятора,
  2. Перейдите на вкладку "Исполняемые файлы цепочки инструментов".
  3. Перейдите на вкладку "Дополнительные пути".
  4. Нажмите кнопку "Добавить", найдите папку bin SFML ( C:\CodeBlocks\sfml\bin ) и добавьте ее, не сохраняя относительных путей.
  5. Нажмите кнопку "ОК" в нижней части диалогового окна.

Добавление пути к исполняемому файлу Toolchain
< /p>

Если вы переустанавливаете Code::Blocks, вы можете получить сообщение "Путь уже в списке дополнительных путей!" Если это так, нажмите OK и продолжите.

С. Создание проекта SFML с помощью мастера проектов SFML

В этом разделе мы создадим тестовый проект для проверки установки SFML. Мы можем использовать эти инструкции в качестве отправной точки и для других новых проектов.

    Запустите Code::Blocks и нажмите ссылку «Создать новый проект» или воспользуйтесь меню: Файл -> Создать -> Проект. .

Запуск проекта Code::Blocks.

Запуск проекта Code::Blocks SFML.

запускается мастер проекта SFML
< /p>

Экран версии проекта SFML
< /p>

Экран библиотеки ссылок проекта SFML

Экран имени проекта SFML
< /p>

Экран имени проекта SFML
< /p>

Экран имени проекта SFML
< /p>

Экран имени проекта SFML
< /p>

Code::Blocks Build icon
< /p>

Code::Журнал сборки блоков
< /p>

Если у вас возникли проблемы, обратитесь к разделу "В случае возникновения проблем" ниже.

Если у вас возникли проблемы, обратитесь к разделу "В случае возникновения проблем" ниже.

Проверить тестовую графику

Проверьте правильное окончание

Д. Создание проекта SFML из пустого проекта

В этом разделе мы создадим тестовый проект для проверки установки SFML. Мы можем использовать эти инструкции в качестве отправной точки и для других новых проектов.

    Запустите Code::Blocks и нажмите ссылку «Создать новый проект» или воспользуйтесь меню: Файл -> Создать -> Проект. .

Запуск проекта Code::Blocks.

Запуск проекта Code::Blocks Empty.

Запуск мастера создания пустых проектов

Пример проекта test-sfml

Проверить компилятор

  1. Нажмите на глобальное имя проекта (например, test-sfml ) в меню слева. Название проекта — это то, что вы ввели на шаге 4.
  2. Выберите вкладку Поиск в каталогах.
  3. Выберите вложенную вкладку "Компилятор".
  4. Нажмите кнопку "Добавить", найдите включаемую папку SFML и добавьте ее, не сохраняя относительных путей. Если вы установили SFML в правильную папку, вы можете использовать C:\CodeBlocks\sfml\include независимо от названия вашего проекта.

Проверить компилятор

  1. Нажав глобальную конфигурацию проекта (имя проекта) в меню слева.
  2. Выбор вкладки "Каталоги поиска".
  3. Выбор вложенной вкладки Linker.
  4. Нажав кнопку "Добавить", найдите папку lib SFML C:\CodeBlocks\sfml\lib и добавьте ее без сохранения относительных путей.

Проверить компилятор

  1. Нажмите на глобальную конфигурацию проекта (имя проекта) в меню слева,
  2. Перейдите на вкладку "Настройки компоновщика".
  3. Нажмите кнопку "Добавить" и добавьте библиотеки ссылок в указанном порядке, введя следующие имена в диалоговом окне "Добавить библиотеку":
    Ввод в библиотеках
    НЕ находить файл.Вместо этого введите (или скопируйте) имена, показанные слева, по одному, и нажимайте кнопку OK в диалоговом окне «Добавить библиотеку» между каждым добавленным именем.

Компилятор GCC требует, чтобы библиотеки ссылок располагались в правильном порядке, как показано. Если вы добавляете sfml-audio или sfml-network, добавьте их перед sfml-window.

Проверить компилятор

Прочитайте диалоги и сделайте правильный выбор. Если вы сомневаетесь, воспользуйтесь моими предложениями, такими как test.cpp .

Code::Blocks Build icon
< /p>

Code::Журнал сборки блоков
< /p>

Если у вас возникли проблемы, обратитесь к разделу "В случае возникновения проблем" ниже.

Если у вас возникли проблемы, обратитесь к разделу "В случае возникновения проблем" ниже.

Проверить тестовую графику

Проверьте правильное окончание

Э. Выход и перезапуск проектов

  • Чтобы закрыть проект, используйте File->Close project перед выходом из CodeBlocks.
  • Чтобы перезапустить проект, выберите (нажмите) файл .cpb для проекта.
  • Чтобы упростить настройку нового проекта, вы можете начать с проекта start-sfml.
  • Убедитесь, что вы разархивировали (извлекли) проект, а затем запустите его, дважды щелкнув файл: start-sfml.cbp
  • CBP (проект Code::Blocks) содержит информацию для запуска существующего проекта в Code::Blocks

Ф. Дополнительная информация

    : Домашняя страница SFML : Настройка SFML для использования с Code::Blocks : Дополнительная информация о том, как использовать SFML.

Г. В случае возникновения проблем

убедитесь, что файл имеет расширение .cpp, а не .c.

убедитесь, что у вас правильный двоичный файл SFML. (См. Установка SFML, шаг 3)

означает, что вы закрыли окно консоли до закрытия графического окна SFML. Чтобы сообщение не отображалось, закройте графическое окно SFML перед закрытием окна консоли (терминала).

означает, что SFML не удалось правильно настроить OpenGL, поскольку окно больше экрана или по другим причинам, таким как использование удаленного рабочего стола.

означает, что SFML не удалось найти файл SFML/Graphics.hpp, так как он установлен в неправильной папке. См. раздел Установка SFML, шаги 1 и 4.

В случае любой другой ошибки попробуйте переустановить Code::Blocks, SFML или и то, и другое, внимательно следуя инструкциям. Сообщите преподавателю о своей ошибке и о том, как вы ее исправили.

Я успешно собрал 64-битный пример проекта (отладочная версия). Вот полный исходный код:

Однако, когда я запускаю его с помощью F5, приложение жалуется, что в дальнейшем отсутствует DLL
freetype.dll

Когда я смотрю в каталог x64/Debug рядом с моим кодом, я вижу следующие DLL:

Если я ищу файл freetype.dll, я могу найти один экземпляр в C:\Users\Philippe\Documents\temp\vcpkg\packages\freetype_x64-windows\bin

Насколько я понимаю, для сборки SFML vcpkg успешно загрузил и скомпилировал пакет freetype.

Если я скопирую файл freetype.dll рядом с моим исполняемым файлом (в каталоге x64/Debug) и снова запущу код, у меня появятся аналогичные сообщения для следующих библиотек DLL

  • zlib1.dll
  • libpng16.dll
  • libbz2.dll

Для каждого из них я могу найти правильную DLL в каталоге ../vcpkg/XYZ
Опять же, как я понимаю, vcpkg правильно загрузил и скомпилировал последние три проекта.

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

Тем не менее, я не знаю, как vcpkg пропускает зависимости, существующие между DLL SFML и 4 DLL (freetype, zlib1. )
Что действительно странно для меня, так это то, что vcpk отлично отслеживает зависимость между jpeg62.dll и некоторыми DLL SFML
Снова посмотрите на начальное содержимое каталога после первой сборки. jpgeg62.dll скопирован правильно.

С точки зрения пользователя, vcpkg должен отслеживать зависимости и копировать 4 недостающие DLL

Я надеюсь, что этот отчет поможет вам улучшить vcpgk
Заранее большое спасибо и, пожалуйста, продолжайте отлично выполнять свою работу (менеджер пакетов является ключевым для сообщества C++)
С уважением, Филипп

Текст был успешно обновлен, но возникли следующие ошибки:

Я тоже столкнулся с этой проблемой (как и многие мои студенты). Один интересный момент, который я заметил, заключается в том, что это происходит только в сборках Debug, а не в сборках Release. Выбор x86/x64 не влияет на это, с любым из вариантов это происходит для сборки Debug, но копирует все необходимые DLL для сборки Release.Я понимаю, что vcpkg использует dumpbin для проверки зависимостей. И sfml-graphics-2.dll, и sfml-graphics-d-2.dll упоминают freetype.dll при использовании над ними dumpbin/depends. — Вы получаете это, потому что вы создали тему. Ответьте на это письмо напрямую, просмотрите его на GitHub или отключите обсуждение .

40tude прокомментировал 14 мая 2018 г.

Добрый день,
1. Что еще мы можем/должны/можем сделать, чтобы помочь и добиться прогресса в решении этой проблемы?
2 - Любое предложение?
С уважением, Филипп

комментарий headkase прокомментирован 16 мая 2018 г.

Меня тоже беспокоит эта проблема. Триплет SFML x64-windows. Пробовал и триплет x86 с тем же результатом, что уже упоминался в этой теме.

40tude прокомментировал 22 мая 2018 г.

Bonjour
Одна идея, которая может помочь.
Когда я смотрю в этот каталог:
..\vcpkg\installed\x64-windows\debug\bin

Я вижу этот список файлов:
FLAC++.dll
FLAC++.pdb
FLAC.dll
FLAC.pdb
freetyped.dll
freetyped.pdb
jpeg.pdb
jpeg62.dll
libbz2d.dll
libbz2d.pdb
libpng16d.dll
libpng16d.pdb
ogg .dll
ogg.pdb
OpenAL32.dll
OpenAL32.pdb
sfml-audio-d-2.dll
sfml-audio-d.pdb
>sfml-graphics-d-2.dll
sfml-graphics-d.pdb
sfml-network-d-2.dll
sfml-network-d.pdb
sfml -system-d-2.dll
sfml-system-d.pdb
sfml-window-d-2.dll
sfml-window-d.pdb
turbojpeg.dll
turbojpeg.pdb
vorbis.dll
vorbis.pdb
vorbisenc.dll
vorbisenc.pdb
vorbisfile.dll
vorbisfile.pdb < br />zlibd.pdb
zlibd1.dll

Обратите внимание, что библиотека DLL свободного типа на самом деле называется freetyped.dll.
Похоже, происходит две вещи:
1. В режиме отладки не все отладочные версии DLL копируются в каталог. решения
2- Мне интересно, имеет ли это какое-либо отношение к тому факту, что в режиме отладки freetype.dll называется freetyped.dll

Обратите внимание, что это похоже на то же самое для трех других DLL:
Ожидается в ..\vcpkg\installed\x64-windows\debug\bin
zlib1.dll ---- ---------------> zlibd1.dll
libpng16.dll---------------> libpng16d.dll
libbz2 .dll --> libbz2d.dll

Мое убеждение таково:
В режиме деблокирования сгенерированные библиотеки DLL имеют правильные имена, поэтому все работает нормально (все библиотеки DLL копируются в каталог Solution).
Однако в режиме отладки имена библиотек DLL украшены буквой "d", и поэтому, когда кто-то (кто, я еще не знаю кто :-) ) пытается скопировать zlib1.dll из репозиториев отладки в каталог решения то он не может его найти и ничего не копируется.

Предлагаемые решения:
1 — независимо от версии (отладочная или выпускная) имена DLL не должны заканчиваться на «d»
2 — если отладочная версия DLL имеет окончание "d", затем убедитесь, что система сценариев/сборки использует правильные имена при попытке скопировать файлы DLL из репозиториев в каталог проекта.

Я бы проголосовал за вариант 1

И последнее замечание: Честно говоря, я очень удивлен, что никто не нашел время, чтобы подтвердить то, что здесь сказано из разных источников. Мы (репортеры) даже не знаем, читает ли кто-то ответственный наш отзыв.

Опять же, я был бы более чем рад помочь, но я не знаю, с чего начать, и я не знаю, как напрямую связаться с сопровождающим пакета SFML vcpk.

Может ли кто-нибудь найти время, чтобы подтвердить, что он просмотрел эту ветку писем?
С уважением, Филипп

SFML предоставляет простой интерфейс для различных компонентов вашего ПК, что упрощает разработку игр и мультимедийных приложений. Он состоит из пяти модулей: системный, оконный, графический, аудио и сетевой.

Подробнее ознакомьтесь с их функциями в руководствах и документации по API.

SFML является мультиплатформенным

Благодаря SFML ваше приложение может быть скомпилировано и готово работать в самых распространенных операционных системах: Windows, Linux, Mac OS X, а вскоре и в Android и iOS.

Предварительно скомпилированные SDK для вашей любимой ОС доступны на странице загрузки.

SFML поддерживает несколько языков

Подробнее о них на странице привязок.

Версии

Установка или настройка

  • Сначала загрузите копию SFML с официальной страницы.
  • Сохраните его в любом месте на своем компьютере, где он будет легко доступен.
  • Открыть кодовые блоки.
  • Перейдите в раздел Проект->Параметры сборки->вкладка LinkerSettings.
  • Нажмите кнопку "Добавить" и перейдите в папку bin SFML и выберите все имеющиеся там файлы.
  • Теперь перейдите на вкладку "Каталоги поиска" и добавьте папку "include" SFML.
  • На той же вкладке щелкните вложенную вкладку «Настройки компоновщика» и добавьте папку «bin».

Базовая программа SFML

Если все настроено правильно, в следующем фрагменте появится окно с заголовком "SFML работает!" с зеленым кругом:

Установка — Linux

Существуют разные подходы к установке SFML в Linux:

  1. Установите его непосредственно из репозитория пакетов вашего дистрибутива.
  2. Получите исходный код, соберите и установите его.
  3. Скачайте предварительно скомпилированный SDK и вручную скопируйте файлы.

Вариант 1 предпочтительнее; если версия SFML, которую вы хотите установить, доступна в официальном репозитории, установите ее с помощью менеджера пакетов. Например, в Debian вы должны сделать:

Вариант 2 требует дополнительной работы: вам нужно убедиться, что все зависимости SFML, включая их заголовки для разработки, доступны, убедиться, что CMake установлен, и вручную выполнить некоторые команды. В результате будет создан пакет, адаптированный к вашей системе. Если вы хотите пойти по этому пути, есть специальное руководство по созданию SFML самостоятельно.

Наконец, вариант 3 является хорошим выбором для быстрой установки, если SFML недоступен в виде официального пакета. Загрузите SDK со страницы загрузки, распакуйте его и скопируйте файлы в удобное для вас место: либо по отдельному пути в вашей личной папке (например, /home/me/sfml), либо по стандартному пути (например, /usr/local).< /p>

Если у вас уже была установлена ​​старая версия SFML, убедитесь, что она не будет конфликтовать с новой версией!

Установка — Windows

Самый распространенный способ установить SFML в Windows – скачать официальный SDK

Затем вы можете распаковать архив и использовать его в выбранной вами среде.

vcpkg

Хотя он все еще находится в активной разработке, если вы используете Visual Studio 2017 или новее, вы также можете установить SFML через vcpkg, который интегрируется с Visual Studio, что значительно упрощает процесс установки:

vcpkg установить sfml

Установка — macOS

Прежде всего вам необходимо загрузить SDK SFML. Затем, чтобы приступить к разработке приложений SFML, вам необходимо установить следующие элементы:

Файлы заголовков и библиотеки

SFML доступен либо в виде dylib, либо в виде фреймворка. Требуется только один тип двоичного файла, хотя оба могут быть установлены одновременно в одной системе. Мы рекомендуем использовать фреймворки.

Фреймворки

  • Скопируйте содержимое Frameworks в /Library/Frameworks.

дилиб

  • Скопируйте содержимое lib в /usr/local/lib и скопируйте содержимое include в /usr/local/include.

зависимости SFML

SFML зависит от нескольких внешних библиотек в Mac OS X. Скопируйте содержимое extlibs в /Library/Frameworks.

Шаблоны Xcode

Если вы используете Xcode, настоятельно рекомендуется установить шаблоны. Скопируйте каталог SFML из шаблонов в /Library/Developer/Xcode/Templates (создайте папки, если их еще нет).

Hello World в окне SFML

Давайте напишем небольшую программу, которая будет открывать окно и писать на экране "Hello World".

Давайте объясним, что мы там сделали.

Сначала мы создали объект sf::Font. Нам нужен этот объект для хранения данных шрифта, которые мы будем использовать для отображения текста. После этого мы вызвали метод loadFromFile, используемый для загрузки шрифта в память. Следует отметить, что SFML не знает о ваших системных шрифтах, поэтому вам нужно указать имя файла, а не имя шрифта

После этого мы создали объект sf::Text. Мы вызываем конструктор с 3 параметрами, принимающий:

  • Строка, которую вы хотите отобразить
  • Шрифт, который будет использовать объект
  • Размер символа в пикселях, который мы здесь не передавали, поэтому для il будет установлено значение по умолчанию: 30

Поскольку объект sf::Text готов, нам просто нужно отрисовать его в основном цикле sfml, вызвав метод draw для объекта окна рендеринга sfmlWin, который мы создали ранее

я получаю сообщение об ошибке, показанной ниже, при попытке скомпилировать проект в Visual C++ (visual studio 2013).

Я новая визуальная студия, здесь использовались учебные пособия, здесь устанавливались зависимости и все.

в верхней части файла включите следующие заголовки:

файл sfml.h содержит следующее:

этот файл находится в @ ..\sfml-2.3\include\sfml.h .

на снимке экрана ниже показано расположение файла sfml-graphics-s-d.lib:

screenshot

можете объяснить, что я здесь пропустил? если вам нужна дополнительная информация, пожалуйста, дайте мне знать, я лучше ее предоставлю.

редактировать: на основе информации здесь пробовали несколько вещей, включая перезагрузку компьютера, проект все равно не скомпилируется.

  • Получить ссылку
  • Фейсбук
  • Твиттер
  • Pinterest
  • Электронная почта
  • Другие приложения

Комментарии

Оставить комментарий

Популярные записи из этого блога

ошибка: Нет кэшированной версии com.android.tools.build:gradle 1.0.0, доступной для автономного режима -

краткая информация: я пытаюсь разработать программу администрирования детского сада, "посетителей" приходят сюда каждый день, хотят прийти на 1 день или хотят остаться дома.хотел использовать календарь, пользователь может выбрать дату прихода посетителя. я использую wpf, mvvmc patern. проблема 1, есть посетитель даты в базе данных, когда попытка связать выбранную дату не работает. если прочитать дату в текстовом поле, увидеть дату правильно. проблема 2, не может ли обойти выбранные даты управления календарем? пользователю нужна возможность выбрать , просмотреть еще 1 дату. Проблема 3, там можно изменить календарь для каждой функции даты. Большое спасибо, кстати, я начинающий программист, у меня нет большого опыта, у меня есть хорошая идея, хочу работать правильно, пожалуйста, полегче со мной. вы должны установить как displaydate="" , selecteddate="" . попробуйте: код xaml:

pandas — AttributeError: объект DataFrame не имеет атрибута colmap в Python —

Я новичок в python, попробуйте использовать следующий источник кода: метод ребалансировки пропускной способности портфеля в python, код работает далеко. проблема, если вы хотите вызвать функцию, отличную от обычной перебалансировки (df, tol), расположение в кадре данных, например: перебалансировка (df [500:], tol), следующая ошибка: attributeerror: объект «dataframe» не имеет атрибута «colmap». вопрос: как настроить код для того, чтобы это стало возможным? вот код: import datetime dt import numpy np import pandas pd import pandas.io.data pid def setup_df(): df1 = pid.get_data_yahoo ("ibm", start=dt.datetime(1970, 1, 1), end=dt .datetime.today()) df1.rename(columns=<'adj close': 'ibm'>, ​​inplace=true) df2 = pid.get_data_yahoo("f", start=dt.datetime(1970, 1, 1) , end=dt.datetime.today()) df2.rename(columns=<'adj close': 'ford'>, inplace=true)

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