Bagaimana cara mendistribusikan aplikasi Gtkmm di Windows?

Saya telah menulis GUI menggunakan gtkmm (pembungkus bahasa C++ untuk GTK+). Saya telah dapat menemukan .dll dan .exe. file bergantung pada, dan buat penginstal dasar menggunakan NSIS. Namun, saya mengalami masalah dalam mendistribusikan aplikasi ke perangkat Windows lainnya. Karena saya benar-benar baru dalam hal ini, adakah yang punya saran tentang cara mendistribusikan aplikasi dengan benar? Yang perlu saya lakukan hanyalah mengunduhnya di beberapa PC lain. Terima kasih!


person Liam Ward    schedule 13.07.2020    source sumber
comment
Anda perlu mendistribusikan pustaka runtime kompiler Anda, dan pustaka lain yang Anda gunakan, bersama dengan program Anda.   -  person Jesper Juhl    schedule 13.07.2020
comment
Anda menjalankan penginstal di komputer lain dan berhasil? Ini aplikasinya yang gagal?   -  person Manuel    schedule 13.07.2020
comment
@Manuel Jika saya tidak menyertakan .dll, aplikasi gagal dan mengatakan ____.dll hilang untuk file apa pun yang tidak dapat ditemukan. Tetapi ketika saya memasukkan semua file .dll di direktori yang sama dengan file .exe, aplikasi gagal dengan kesalahan terkait Gdk   -  person Liam Ward    schedule 13.07.2020
comment
@LiamWard dapatkah Anda menunjukkan kesalahannya?   -  person Manuel    schedule 13.07.2020
comment
@Manuel Terima kasih atas bantuan Anda, kesalahan Gdk yang saya dapatkan ketika semua file .dll disertakan dalam direktori yang sama dengan .exe dihentikan dipanggil setelah melemparkan instance Gdk::PixbufError. Namun, kesalahan itu tidak muncul di mesin asli tempat saya mengembangkan aplikasi, dan saya telah memeriksa bahwa semua gambar yang saya muat berada di direktori yang sama dengan .exe.   -  person Liam Ward    schedule 13.07.2020
comment
@JesperJuhl Apakah ada cara untuk mengetahui file mana yang perlu saya sertakan?   -  person Liam Ward    schedule 13.07.2020
comment
@LiamWard Daftarnya terlalu panjang untuk ditampilkan di sini tetapi Anda punya satu di sini di bagian daftar file konten Bundel.   -  person Manuel    schedule 14.07.2020


Jawaban (1)


Cobalah untuk menangkap pengecualian dan lihat Gdk::PixbufError::code() atau Gdk::PixbufError::what() untuk mengetahui mengapa hal itu terjadi.

Anda memiliki beberapa kode:

  CORRUPT_IMAGE,
  INSUFFICIENT_MEMORY,
  BAD_OPTION,
  UNKNOWN_TYPE,
  UNSUPPORTED_OPERATION,
  FAILED,
  INCOMPLETE_ANIMATION

Gambar di mesin pengembangan berada di direktori yang sama dengan build .exe?

Selain itu, jika Anda menjalankan aplikasi dari ikon, pintasan, atau sejenisnya, direktori saat ini mungkin tidak sama dengan .exe.

person Manuel    schedule 13.07.2020