سلام دوستان.من ميخوام تو اين پست راجع به طريقه لينك كردن و استفاده ازfreeglut يا glut در visual studio 2010 صحبت كنم و راه حل مشكلي رو كه نه تنها مدتي بود منو عذاب ميداد بلكه وقتي به انجمن هاي لاتين هم سري زدم متوجه شدم كه اين مشكل،دامنگير خيلي از كاربران visual studioهم شده(علارغم رعايت تمام مراحل راه اندازي)،در حد دانش خودم ارائه بدهم.علت اين امر هم اينه كه راهنمايي هاي تصويري و نوشتاري كه عمدتا وجود داره به دليل جامع نبودن و در نظر نگرفتن تمام مشكلات احتمالي،كاربران رو با مشكل روبرو ميكنه.
خوب فكر ميكنم زياد پرحرفي كردم.حالا ميپردازيم به ارائه راه حل:
- اولين مشكلي كه خيليا با اون مواجه ميشن اينه كه تو آموزش تصويري گفته كه اگه قرارهopengl32.lib،glu32.lib،glut32.lib رو از مسير linker>input>additional Dependencies به برنامه لينك كنيد در قسمت<Edit> مربوط بهadditional Dependencies نام اين سه فايل رو با يك فاصله ازهم،بنويسيد.كه اينكار منجر به خطاي زير ميشه:
LINK : fatal error LNK1104: cannot open file 'opengl32.lib glu32.lib glut32.lib
- بنابراين توصيه من اينه كه به جاي اينكار درقسمت additional Dependencies نام اين سه فايل رو قبل از
kernel32.lib;نوشته و با ; از هم جدا كنيد.
- يا مي تونين در ابتداي برنامتون توسط دستورات زير اين سه فايل رو به لينكر معرفي كنيد.
- مشكل دوم:اگر شما قسمت قبل را هم به درستي انجام دهيد باز ممكن است به دليل اينكه در قسمت system>subsustem گزينه( Console (/SUBSYSTEM:CONSOLE به طور پيش فرض انتخاب شده باشد، دچار خطاهاي زير شويد:
error LNK2019: unresolved external symbol _wmain referenced in function ___tmainCRTStartup
C:\Documents and Settings\a\My Documents\Visual Studio 10\Projects\345\Debug\345.exe : fatal error LNK1120: 1 unresolved externals
- راه حل:اين گزينه پيش فرض را به Not Set تغيير دهيد.
- براي اطمينان از اينكه مكان اين سه فايل را به درستي به visual studio شناسانده ايد انجام اين توصيه نيز خالي از لطف نيست:
- در قسمت linker>General>additional Library Directories مكان پوشه Lib را مشخص كنيد مثلا در ويندوز 32 بيتي xp كه visual studio 2010 روي آن نصب است مكان پوشه Lib به صورت زير است:
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib
اگر اين سه دستور رعايت شود مشكلي در راه اندازي glut يا به طور مشابه در راه اندازي freeglut(البته بعد از رعايت مراحلي كه در آموزش ها گفته شده) نخواهيد داشت.
اگر با اين نوشته هايم براي خيلي از دوستان كه خودشان در اين زمينه استادند تكرار مكررات كردم عذر ميخوام، ولي بر خودم لازم دونستم زكات تجربه اي رو كه كسب كردم بپردازم و نيز گامي كوچك در جهت رفع مشكلات اوليه و پيش پا افتاده دوستاني كه همچون خودم مبتدي هستند و مشكلات اين چنيني ممكن است باعث دلسردي آن ها و مانع از ادامه كارشان شود برداشته باشم.
اميد كه مورد اقبال دوستان قرار گيرد.