مشاهده نسخه کامل
: سوال در مورد مجوزهای نرمافزار
thelastblack
18-02-2012, 14:24
با سلام
من میخواستم از Qt برای نوشتن یه برنامه که تو سیستمعاملهای معروف اجرا شه استفاده کنم.
در مورد مجوزش میخواستم سوال کنم. اونطور که فهمیدم دو نوع مجوز داره: یکی GPL خودمون و یکی هم مجوز تجاری. با مجوز GPL نمیشه برنامههای تجاری نوشت و باید مجوز تجاری رو خرید.
سوالم اینه که مجوز تجاریش رو به ما میفروشن(بحث تحریم و اینا...)؟
یه چیزیه دیگه هم هست. یه جایی خوندم که نوکیا از ۲۰۰۹ به بعد Qt رو تحت LGPL هم منتشر میکنه. همونجا هم خوندم که یعنی میشه باهاش برنامههای تجاری نوشت. منظورش دقیقا چیه؟ LGPL چه چیزهایی داره که GPL نداره(یا برعکس)؟
Open-Source
18-02-2012, 23:38
کلا LGPL برای این نوشته شده که بتونی از کتابخونه های آزاد توی نرم افزار های تجاری استفاده کنی.
یادمه توی برنامه نویس در اینمورد بحث شد که با LGPL میشه از کتابخونه های آزاد توی برنامه استفاده کرد ولی حق کامپایل برنامه را بصورت استاتیک نداری (یعنی باید حتما بصورت داینامیک کامپایل کنی).
ورژن تجاریش هم قیمتش بالاست.
میتونی توی ایران هم استفاده کنی (فقط باید یه ویزایی یا پی بالی چیزی جور کنی که بخری).
با qt رایگان نمی شه برنامه تجاری نوشت؟ من فکر می کردم نمی شه باهاش برنامه غیر آزاد نوشت.
کلا LGPL برای این نوشته شده که بتونی از کتابخونه های آزاد توی نرم افزار های تجاری استفاده کنی.
تجاری یا غیر آزاد؟
ولی حق کامپایل برنامه را بصورت استاتیک نداری (یعنی باید حتما بصورت داینامیک کامپایل کنی).
بیشتر توضیح میدید؟ کامپایل استاتیک چیه؟
thelastblack
19-02-2012, 17:17
ممنون دوست عزیز... یکم روشن شدم
فقط این استاتیک و دینامیک چیه؟ یعنی نمیتونم کامپایل کنم و باینری رو بدم بیرون به عنوان نرمافزار؟
این شبههی تجاری و غیر آزاد رو هم جواب بدین ممنون میشم. البته خودم فکر میکنم تجاری بودن مشکل نداره فقط باید آزاد باشه.
این یعنی اینکه من میتونم با Qt رایگان برنامه بنویسم ولی باید آزاد باشه.واسه کاری که من میخوام انجام بدم اصلا مناسب نیست.
کسی یه toolkit cross platform سراغ داره که رایگان باشه و این محدودیتها رو نداشته باشه؟
مرسی
Open-Source
19-02-2012, 21:14
کلا پکیج های با لایسنس LGPL (که قالبا کتبخانه های آزاد از این لایسنس استفاده میکنند) میتوند توسط نرم افزار های خارج از این لایسنس استفاده شوند ، حال این نرم افزار ها میتونند آزاد و یا غیر آزاد باشن.
پکیج های با لایسنس GPL ، فقط میتونند با نرم افزار هایی تحت همین مجوز کار کنند. (اینجا بحث همون Copy Left و اینجور چیزا مطرحه)
از اونجا که Qt از تحت لایسنس GPL و LGPL بصورت همزمان هستش ، باید قواعد این دوتا لایسنس رو با هم ترکیب کنی.
ولی در کل همونطور که در بالا گفتم به شرط کامپایل داینامیک میتونی از کتابخونه Qt توی برنامه ات استفاده کنی (البته اگه کد های خود کتابخونه Qt رو دستکاری کردی باید کد اون رو منتشر کنی).
برای فهمیدن فرق کامپایل استاتیک و داینامیک به ویکی مراجعه کن.
اینجا رو ببین و لایسنس ها رو خوب مطالعه کن:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
thelastblack
20-02-2012, 12:10
LGPL رو خوندم. چیزی که فهمیدم اینه:
من میتونم از یه کتابخونه تو برنامم استفاده کنم، ولی اگه بخشی از کتابخونه تو برنامم باشه باید برنامه تحت LPGL منتشر شه.
اگه هم فقط از کتابخونه استفاده کنم میتونم هر لایسنسی که خواستم بهش بدم.
این یعنی همون کامپایل دینامیک و استاتیک/
ولی تا اونجا که میدونم از تو Qt Creator برنامه بنویسم و کامپایل کنم میشه استاتیک. چطوری میتونم دینامیکش کنم؟
Open-Source
20-02-2012, 19:01
LGPL رو خوندم. چیزی که فهمیدم اینه:
من میتونم از یه کتابخونه تو برنامم استفاده کنم، ولی اگه بخشی از کتابخونه تو برنامم باشه باید برنامه تحت LPGL منتشر شه.
اگه هم فقط از کتابخونه استفاده کنم میتونم هر لایسنسی که خواستم بهش بدم.
این یعنی همون کامپایل دینامیک و استاتیک/
ولی تا اونجا که میدونم از تو Qt Creator برنامه بنویسم و کامپایل کنم میشه استاتیک. چطوری میتونم دینامیکش کنم؟
نه دوست عزیز ،انگار فرق کامپایل داینامیک و استاتیک رو متوجه نشدید ،پس یه توضیح مختصر میدم:
اگه یه پروژه ای بصورت داینامیک کامپایل بشه ،وقتی بخواد تابعی رو از یه کتابخونه صدا بزنه در هنگام صدا زده شدن اون تابع ،کتابخونه لود میشه تو حافظه (البته اون تکه کد) ، اینجوری حجم فایل اجرایی خیلی پایین هستش ولی به کتابخونه ها وابسته هستش یعنی باید کتابخونه هاش روی سیستم باشه (مثل برنامه های Net. که برای اجرا باید Net Framwork. روی سیستم نصب باشه).
ولی توی کامپایل بصورت استاتیک ، تکه کد های مورد استفاده (از همون کتابخانه ها) به فایل اجرایی میچسن ، اینجوری حجم فایل اجرایی بالا میره ولی شما یه فایل اجرایی مستقل دارید و برای اجرای اون به هیچ کتابخونه ای نیاز ندارید که روی سیستم نصب باشه.
برای اینکه بخوای پروژه Qt رو بصورت استاتیک کامپایل کنی باید Qt رو روی سیستم بصورت استاتیک کامپایل کنی.
Qt Creator یه IDE هست و هیچ دخالتی به نوع کامپایل نداره.
اگه Qt SDK رو دانلود کردی و روی ویندوز استفاده میکنی پیش فرض بصورت داینامیک کامپایل شده و نیاز به هیچگونه دستکاری نداری.
اگه توی لینوکس استفاده میکنی ، دیگه خودت میدونی استاتیک کامپایل کردی یا داینامیک.
موفق باشی...
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.