Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469

Запуск sfml приложений на других пк

14.08.2018, 10:03. Показов 5474. Ответов 21

Студворк — интернет-сервис помощи студентам
Здравствуйте, я написал приложение, используя sfml. Но возникает вопрос, как его запустить на другом пк, ведь приложение запущенное на другой машине, будет требовать какие-либо библиотеки. Главный вопрос: как эти библиотеки скомпилировать сразу в проект, чтобы другой пк не требовал их установки.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.08.2018, 10:03
Ответы с готовыми решениями:

Запуск других приложений...
Как с формы с помощью кнопки запустить дургое приложение, к примеру калькулятор... Какими функциями и какие баблиотеки для этого нужны?

Перевод String to PAnsiChar (Запуск других приложений)
Привет! При запуске других приложений с помощью WinExec ('путь', SW_SHOW) или ShellExecute (Form1.Handle, nil, 'путь', nil, nil,...

Как нарисовать множество кругов или других фигур в SFML?
Имеется следующий класс: #include <SFML/Graphics.hpp> class Circle { private: sf::CircleShape circle; ...

21
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
14.08.2018, 14:29
Pashka Durov, таскать с программой нужные динамические библиотеки, или использовать статические версии библиотек
0
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
15.08.2018, 16:40  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
таскать с программой нужные динамические библиотеки, или использовать статические версии библиотек
это я понял, например, чтобы скомпилировать просто sfml приложение нужное прописать: g++ -c <имя(например будет main)>.cpp g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system. А вопрос в том, с помощью каких флагов сообщить компилятору о том, что нужно вшить в программу еще и библиотеки
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
15.08.2018, 17:04
Цитата Сообщение от Pashka Durov Посмотреть сообщение
-lsfml-graphics -lsfml-window -lsfml-system
Это динамические библиотеки. Статические имеют суффикс -s:
-lsfml-graphics-s -lsfml-window-s -lsfml-system-s.
Учтите, что SFML также использует другие библиотеки.
1
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
15.08.2018, 17:57  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Это динамические библиотеки. Статические имеют суффикс -s:
-lsfml-graphics-s -lsfml-window-s -lsfml-system-s.
на другом пк пишет: что libsfml-graphics.so.2.4 не найдена, но при моей попытке скомпилировать проект с указанием "-libsfml-graphics.so.2.4 -s" (может быть и глупость пишу) компилятор говорит, что такой библиотеки нет
Цитата Сообщение от Croessmah Посмотреть сообщение
Учтите, что SFML также использует другие библиотеки.
приму к сведению, спасибо
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
15.08.2018, 19:10
Цитата Сообщение от Pashka Durov Посмотреть сообщение
"-libsfml-graphics.so.2.4 -s"
Сравните с -lsfml-graphics-s и найдите отличия.
0
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
15.08.2018, 20:03  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Сравните с -lsfml-graphics-s и найдите отличия.
я покопался на сайтах, и нашел такой ответ по моей теме (отрывок) : "Это также потребуется на машине, исполняющей исполняемый файл, если вы не упакуете эти.so файлы с вашим исполняемым файлом." Тут говорится, что нужно упаковать .so библиотеки, но как их, собственно, упаковать?
P.S. Знаю, что, может быть, я топчусь по кругу, но не смогу успокоится, пока спокойно не запущу приложение на стороннем пк .
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
15.08.2018, 20:50
Цитата Сообщение от Pashka Durov Посмотреть сообщение
.so библиотеки
.so библиотеки - это динамические библиотеки.
0
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
15.08.2018, 21:03  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
.so библиотеки - это динамические библиотеки.
Цитата Сообщение от Croessmah Посмотреть сообщение
таскать с программой нужные динамические библиотеки
но каким образом их можно таскать вместе с программой
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
15.08.2018, 22:24
Pashka Durov, в Linux не принято ничего "таскать". Делается пакет под нужный дистрибутив, указываются зависимости и при установке на другом ПК пакетный менеджер доустанавливает все необходимое.
0
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
16.08.2018, 08:08  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Pashka Durov, в Linux не принято ничего "таскать". Делается пакет под нужный дистрибутив, указываются зависимости и при установке на другом ПК пакетный менеджер доустанавливает все необходимое.
то бишь проще сделать установщик, который "пропишет" в терминале "sudo apt-get install libsfml-dev"?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
16.08.2018, 08:31
Лучший ответ Сообщение было отмечено Pashka Durov как решение

Решение

Pashka Durov, лучше сделать пакет, который в зависимостях будет иметь sfml. Но нужно учесть, что в репозиториях разных дистрибутивов могут быть разные версии sfml и новые версии могут отсутствовать.
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
16.08.2018, 08:40
Лучший ответ Сообщение было отмечено Pashka Durov как решение

Решение

Цитата Сообщение от Pashka Durov Посмотреть сообщение
то бишь проще сделать установщик
Сделать его правильнее, проще может не быть, особено с начальным уровнем знаний.

Что касается "таскания", то на форуме вам предлагают банальное: запаковать в архив свое приложение вместе с необходимыми so. Сделать скрипт запуска, который выставит переменную окружения LD_LIBRARY_PATH в путь, соответствующий местонахождению этих so. Собственно все. Надо только помнить, что абсолютно все зависимости так упаковать не получится, системные библиотеки должны все-таки браться из системы, и тут кроется загвоздка, т.к. версии этих системных библиотек на других ПК могут не соответствовать ожиданиям вашего приложения. Именно поэтому лучше сделать пакет, чтобы избавить потенциального пользователя от необходимости гадать, запустится ли приложение из архива, или нет. И да, пакетов, скорее всего, придется делать несколько, на каждую из версий популярных сейчас дистрибутивов. Ну это в идеале, конечно.
0
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
16.08.2018, 15:39  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Сделать его правильнее, проще может не быть, особено с начальным уровнем знаний.
Что касается "таскания", то на форуме вам предлагают банальное: запаковать в архив свое приложение вместе с необходимыми so. Сделать скрипт запуска, который выставит переменную окружения LD_LIBRARY_PATH в путь, соответствующий местонахождению этих so. Собственно все. Надо только помнить, что абсолютно все зависимости так упаковать не получится, системные библиотеки должны все-таки браться из системы, и тут кроется загвоздка, т.к. версии этих системных библиотек на других ПК могут не соответствовать ожиданиям вашего приложения. Именно поэтому лучше сделать пакет, чтобы избавить потенциального пользователя от необходимости гадать, запустится ли приложение из архива, или нет. И да, пакетов, скорее всего, придется делать несколько, на каждую из версий популярных сейчас дистрибутивов. Ну это в идеале, конечно.
Цитата Сообщение от Croessmah Посмотреть сообщение
Pashka Durov, лучше сделать пакет, который в зависимостях будет иметь sfml. Но нужно учесть, что в репозиториях разных дистрибутивов могут быть разные версии sfml и новые версии могут отсутствовать.
огромное спасибо, теорию понял, но пока что разбираюсь с частью софта (на данный момент всё понятно),так что ждите еще вопросов в ближайшее время
0
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
24.09.2018, 14:27  [ТС]
Нашел время вернуться к проекту, и тут до меня дошло: смоделируем ситуацию: в репозитории нет той библиотеки, которую я использую, что же тогда делать? Ведь при создании .deb пакета указываются зависимости, и как известно, установщик просто доустанавливает все нужное.
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
24.09.2018, 14:39
Цитата Сообщение от Pashka Durov Посмотреть сообщение
смоделируем ситуацию: в репозитории нет той библиотеки, которую я использую, что же тогда делать?
Можно распространять ее в составе своего пакета.
1
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
24.09.2018, 15:54  [ТС]
DrOffset, а можно какую-нибудь литературу на эту тему, а то сам я не нашел, либо нашел с очень сложными объяснениями
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
24.09.2018, 16:18
Pashka Durov, если речь о debian-based дистрибутивах, то могу только официальный мануал посоветовать почитать. Литературы на русском не встречал.
2
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
24.09.2018, 18:43  [ТС]
DrOffset, может ли это является тем, что мне нужно http://linuxoidblog.blogspot.c... .html?m=1?
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
24.09.2018, 21:56
Pashka Durov, там очень мало, но, наверное, сойдет.

Но лучше, все-таки, использовать официальную документацию: https://www.debian.org/doc/man... ng.ru.html
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.09.2018, 21:56
Помогаю со студенческими работами здесь

Освобождение памяти других приложений
Доброго вечера)Заметил много интересных утилит которые высвобождают память из различные процессов. Есть замечательная функция: bool...

Работа с окнами других приложений
Привет. Подскажите, а что, C# не обладает встроенными средствами для работы со соронними окнами? Получить хендл, допустим,...

Отслеживание запуска других приложений
Не мог бы кто подсказать, чем именно (методом, свойством) реализуется отслеживание запуска виндовых приложений? Скажем, для того, чтобы...

нету windows store и других приложений
Помогите пожалуйста, установил винду 10 и похоже корпоротивную версию. Отсутствуют все стандартные приложение Windows а главное нет...

Как сделать блокировку других приложений?
Как сделать блокировку запуска других приложений пока работает моё, на подобие такой как в Dr.Web CureIt! там всё остальное пространство...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru