سلام.یه برنامه Qt/C++ نوشتم و و روی سیستم خودم هم باز میشه . حالا نمیدونم چطوری اونو به بقیه بدم تا نخوان کتابخونه های qt رو دانلود کنن یا اگر باید دانلود کنن چه چیز هایی رو نیاز دارن؟
سلام من این
برنامه مدیریت کرون شما رو تست کردم اجرا شد.
ahmad@presto:~/Desktop/p$ file PersianCronEditor
PersianCronEditor: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=bbcd8de0715d1bb51eb5f595d333155fe85a58e3, not stripped
این نشون میده که برنامه رو سیستم های 64 بیتی اجرا میشه و بصورت dynamically linked هست پس از کتابخونه های اشتراکی موجود روی سیستم استفاده میکنه.
یعنی اینکه باید کتابخونه های مورد نیازش روی سیستم باشن تا اجرا بشه.
برای اینکه به بقیه بدیدش باید کتابخونه های مورد نیاز رو شناسایی کنید پس:
ahmad@presto:~/Desktop/p$ ldd PersianCronEditor
linux-vdso.so.1 => (0x00007fff2e924000)
libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007f5211796000)
libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007f5211149000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007f5210aa2000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f521079e000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5210588000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f52101c2000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f520ffa4000)
libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f520fd53000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f520fa4a000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f520f715000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f520f40f000)
libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f520f1e8000)
libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f520ef93000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f520ed7a000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 (0x00007f520eb13000)
libicui18n.so.52 => /usr/lib/x86_64-linux-gnu/libicui18n.so.52 (0x00007f520e70c000)
libicuuc.so.52 => /usr/lib/x86_64-linux-gnu/libicuuc.so.52 (0x00007f520e393000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f520e18e000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f520df86000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5211fdb000)
libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f520dd7d000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f520db3f000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f520d920000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f520d67c000)
libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f520d460000)
libglapi.so.0 => /usr/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007f520d239000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f520d026000)
libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f520ce23000)
libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f520cc1d000)
libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f520ca1a000)
libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007f520c803000)
libxcb-dri2.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0 (0x00007f520c5fe000)
libxcb-dri3.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0 (0x00007f520c3fa000)
libxcb-present.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-present.so.0 (0x00007f520c1f7000)
libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f520bff1000)
libxshmfence.so.1 => /usr/lib/x86_64-linux-gnu/libxshmfence.so.1 (0x00007f520bdee000)
libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007f520bbe8000)
libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007f520b9dc000)
libicudata.so.52 => /usr/lib/x86_64-linux-gnu/libicudata.so.52 (0x00007f520a16e000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f5209f6a000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f5209d63000)
حالا باید برید ببینید کدوم بسته ها این کتابخونه ها رو درونشون دارن:
من یه برنامه qt دیگه رو چک کردم(Zeal) و به این بسته ها رسیدم:
libqt5widgets5
libqt5gui5
libqt5core5a
libstdc++6
libgcc1
libc6
libx11-6
البته این لیست ممکنه کامل نباشه، خودتون بیشتر تحقیق کنید!
باید برنامه هایی که از qt5 استفاده میکنن رو چک کنید ببینید چه پیش نیاز هایی دارن.
روش دیگه اینه که بصورت static linked برنامه رو بسازید، یعنی که کتابخونه ها داخل برنامه باشه.
در اینصورت حجم برنامه میره بالا و کتابخونه ها امکان آپدیت ندارن چون درون فایل اجرایی هستن.
روشش رو بلد نیستم باید بگردید!
برای ساخت پکیج deb هم این اسکریپت رو نگاه کنید:
https://github.com/AhmadHamzeei/unity-dilmaj/blob/master/make_deb.sh
اگه بتونید ppa درست کنید خیلی بهتره که بازم روشش رو نمیدونم!
اگه کسی بلده، توضیح بده.