PDA

View Full Version : مشکل با کیوتی و opengl



python_85
جمعه 10 اردیبهشت 1389, 17:02 عصر
سلام
من یه مثال ساده کار با opengl رو می خوام تو Qt اجرا کنم ولی خطا می ده
اول که اصلا

#include <GL/glut.h>
رو نمیشناخت
بعد این سایت رو دیدم و این کارا رو کردم:


Installing GLUT


Download this GLUT archive (http://web.cs.wpi.edu/~gogo/courses/mingw/winglut.zip) to your "C:\mingw" directory.
Unpack the archive, and place the "GL\glut.h" file in "C:\mingw\include\gl" directory, the "winlib\libglut32win.a" file into the "C:\mingw\lib" directory, and "glut32.dll" into the "C:\windows\system32" directory (or leave it in the same directory as your executable).
When compiling, use #include <gl/glut.h> to include the glut header.
When linking, use "-lglut32win" in the link line of your make file.


مشکل قبلیی حل شد ولی موقع کامپایل شدن این خطا رو میده:


:-1: error: collect2: ld returned 1 exit status


این کد برنامه:


#ifndef WIN32 //if using windows then do windows specific stuff.
#define WIN32_LEAN_AND_MEAN //remove MFC overhead from windows.h witch can cause slowness
#define WIN32_EXTRA_LEAN

#include <windows.h>
#endif
//#include <QtCore/QCoreApplication>
#include <GL/gl.h>
#include <GL/glut.h>
#include <GL/glu.h>
#include <conio.h>//needed for getch
void display() { /* empty function required as of glut 3.0 */ }

int main(int argc, char *argv[])
{
// QCoreApplication a(argc, argv);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
glutInitWindowSize(80,60);
glutCreateWindow("Hello World");
glutDisplayFunc(display);
glutMainLoop();
getch();//pause here to see results or lack there of
return 0;

//return a.exec();
}


اگه راهنمایم کنید ممنون میشم

hamidrezaseifi
شنبه 11 اردیبهشت 1389, 00:05 صبح
باید از opengl خود QT استفاده کنید. همان جواب را می دهد



#include <QtOpengl/qgl.h>

python_85
شنبه 11 اردیبهشت 1389, 00:24 صبح
سلام
مرسی من با QGLWidget کار کردم و مشکلی هم ندارم
اما ...
من یه سری کد نوشته شده با opengl دارم که می خوام از لینوکس بیارم تو ویندوز
می خوام با کامپایلر کیوتی کامپایل کنم اینجا با مشکل بر خوردم

حامد مصافی
جمعه 19 خرداد 1391, 00:07 صبح
برای استفاده از یک کتابخانه خارجی تنها قید سرآیند آن کافی نیست!

سرآیند فقط ساختار کلاس‌های آن را برای شما آشکار می‌کند. اما کدهای (فایل‌های cpp) آن تا اینجا در برنامه شما وارد نشده است. که این هم به دو شکل می‌تواند انجام پذیرد:


داینامیک: در این روش برنامه‌شما وابسته به یک فایل خارجی (dll در ویندوز و so در لینوکس) خواهد بود
استاتیک: در این حالت آبجکت کامپایل شده از کتابخانه (در قابل یک فایل فشرده با پسوند a که شامل تعدادی فایل o است) از حالت فشرده خازج شده و فایل‌های آبجکت آن در مقام آبجکت‌های شما وارد خروجی نهایی می‌شوند.

به عبارت ساده‌تر شما باید این کتابخانه را وارد برنامه خود کنید.
برای این کار باید عبارتی مانند زیر در فایل pro اضافه کنید:



LIBS += -lglut32win