سلام
من یه برنامه دارم که برای کامپایل نیاز به Microsoft DirectX SDK داره، حالا دو تا سوال برام پیش امده:
وقتی برنامه رو Build کنم حجم برنامه چون از SDK استفاده کردم، بیشتر از حد معمول میشه ؟
برای اجرای برنامه ام روی یه سیستم دیگه به همین SDK نیاز دارم ؟ یا راهی هست که خود SDK نصب نباشه ولی برنامه من اجرا بشه ؟
توی ویندوز معمولش اینطوری هست که شما فقط از توابع و api ها و dll و .. های اون sdk استفاده میکنید؛ و برای اینکه توی یه سیستم دیگه اجرا بشه باید اون فایل ها هم توی سیستم طرف موجود باشه ؛ مثلا باید توی سیستم مقصد هم directX نصب باشه تا برنامه شما اجرا بشه
اینطوری حجم برنامه هیچ افزایشی پیدا نمیکنه
(یعنی کم حجم بودن فدای قابل حمل بودن میشه)
------
اما در لینوکس چون معمولا با سورس کار داریم؛ یعنی هنگام استفاده از sdk خودمون تعیین میکنیم که برنامه امون قایل جمل باشه یا حجمش کم باشه؛
یا بخوام دقیق تر بگم؛ خودمون تعیین میکنیم کدهامون static باشند یا dynamic ؛؛
-----
داخل ویندوز و مخصول برنامه هابی که ماکروسافت توسعه دهندشون هست؛ بیشتر برنامه ها دینامیک هستند و نیاز دارند کتابخونه ها توی سیستم طرف نصب باشه (مثلا .net .. )
برای اجرا روی یه کامپیوتر دیگه لازم به نصب تمام sdk نیست؛ فقط کافیه فایلهای مورد نیازش موجود باشه؛
اینهمه حرف الکی زدم اخر سر نده خدا حوابشم نمیگیره
جواب گرفتم تا حدی خب من از چندتا فایل .lib و .h استفاده میکنم مشخصا فقط لازمه فایل های .lib رو همراهم داشته باشم ؟
در واقع لازم و حیاتی نیست که همراهش باشه؛ چون هم میتونه کنارش به عنوان یه فایل جدا قرار بگیره و هم اینکه احتمالا توی خود فایل نهایی قرار بگیره
من اطلاعات دقیق از نحوه عملکردش ندارم که با اطمینان جواب بدم؛ ولی به نظر میرسه با نصب directx توی سیستم مقصد؛ احتیاجی نباشه فایلهای lib رو کنار برنامه قرار بدی
حالا میخوایی چندتا فایل درست کن؛ توی سیستم عاملهای مختلف تست میکنیم ببینم چه حوابی میگیریم؛
الان متوجه شدی من خودم کلی از دنیا پرتم؟