Я написал графический интерфейс, используя gtkmm (языковая оболочка C++ для GTK+). Мне удалось найти .dll файлы .exe. зависит от файла, и создайте базовый установщик с помощью NSIS. Однако у меня возникли проблемы с распространением приложения на другие устройства Windows. Поскольку я совершенно новичок в этом, кто-нибудь может посоветовать, как правильно распространять приложение? Все, что мне действительно нужно сделать, это загрузить его на несколько других компьютеров. Спасибо!
Как распространять приложение Gtkmm в Windows?
comment
Вам необходимо распространять библиотеки времени выполнения ваших компиляторов и любые другие библиотеки, которые вы используете, вместе со своей программой.
- person Jesper Juhl   schedule 13.07.2020
comment
Вы запустили программу установки на другой машине, и она работает? Это приложение, которое терпит неудачу?
- person Manuel   schedule 13.07.2020
comment
@Manuel Если я не включу .dll, приложение выйдет из строя и скажет, что отсутствует ____.dll для любых файлов, которые оно не может найти. Но когда я включаю все файлы .dll в тот же каталог, что и файл .exe, приложение завершается с ошибкой, связанной с Gdk.
- person Liam Ward   schedule 13.07.2020
comment
@LiamWard, можешь показать ошибку?
- person Manuel   schedule 13.07.2020
comment
@Manuel Спасибо за вашу помощь, ошибка Gdk, которую я получаю, когда все файлы .dll включены в тот же каталог, что и .exe, вызывается после создания экземпляра Gdk::PixbufError. Однако эта ошибка не появляется на исходной машине, на которой я разработал приложение, и я проверил, что все загружаемые изображения находятся в том же каталоге, что и .exe.
- person Liam Ward   schedule 13.07.2020
comment
@JesperJuhl Есть ли способ выяснить, какие именно файлы мне нужно включить?
- person Liam Ward   schedule 13.07.2020
comment
@LiamWard Список слишком длинный, чтобы показывать его здесь, но у вас есть один здесь в разделе списка файлов содержимого пакета.
- person Manuel   schedule 14.07.2020
Ответы (1)
Попробуйте перехватить исключение и посмотреть на Gdk::PixbufError::code()
или Gdk::PixbufError::what()
, чтобы понять, почему оно вызывается.
У вас есть несколько кодов:
CORRUPT_IMAGE,
INSUFFICIENT_MEMORY,
BAD_OPTION,
UNKNOWN_TYPE,
UNSUPPORTED_OPERATION,
FAILED,
INCOMPLETE_ANIMATION
Образы на машине разработки находятся в том же каталоге, что и сборка .exe
?
Кроме того, если вы запускаете приложение с помощью значка, ярлыка или чего-то подобного, текущий каталог может не совпадать с .exe
.
person
Manuel
schedule
13.07.2020