Как распространять приложение Gtkmm в Windows?

Я написал графический интерфейс, используя gtkmm (языковая оболочка C++ для GTK+). Мне удалось найти .dll файлы .exe. зависит от файла, и создайте базовый установщик с помощью NSIS. Однако у меня возникли проблемы с распространением приложения на другие устройства Windows. Поскольку я совершенно новичок в этом, кто-нибудь может посоветовать, как правильно распространять приложение? Все, что мне действительно нужно сделать, это загрузить его на несколько других компьютеров. Спасибо!


person Liam Ward    schedule 13.07.2020    source источник
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