Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[openGL][Visual Studio] Instalacja bibliotek

Ostatnio zmodyfikowano 2014-01-09 16:26
Autor Wiadomość
razy
Temat założony przez niniejszego użytkownika
[openGL][Visual Studio] Instalacja bibliotek
» 2014-01-05 19:04:27
Już kilka godzin męcze sie z instalacją bibliotek openGL, w końcu chyba prawie udało mi się ją zainstalować. Jednak jeszcze nie wszystko do końca dobrze działa. Wszystkie pliki .h wrzucilem do include, .lib do lib'ów, a .dll do bin'ów i do c/windows/system32. W Visualu w project -> properties -> linker -> Input -> additional Dependencies wpisalem opengl32.lib, linker -> system -> sub sysytem zmieniłem na WINDOWS(/SUBSYSTEM:WINDOWS).

Odpalam ten program (jest na samym dole)  http://cpp0x.pl/kursy​/Kurs-OpenGL-C++​/Pierwszy-program/103
zamieniłem tylko #include <GL/glut.h> na #include <glut.h> bo wywalało ponad 100 errorów, a tak to są 2 o następującej treści:
1) 'exit':redefinition; _declspec(noreturn)differs   -    File: stdlib.h   -  linia 406
2) 'exit'identifier not found - 59 linijka

Skoro tak, to usunolem część kodu gdzie było exit i usunołem #include<stdlib.h>. Teraz kod wygląda tak:
C/C++
#include <glut.h>

// funkcja generująca scenę 3D

void Display()
{
    // kolor tła - zawartość bufora koloru
    glClearColor( 1.0, 1.0, 1.0, 1.0 );
   
    // czyszczenie bufora koloru
    glClear( GL_COLOR_BUFFER_BIT );
   
    // kolor kwadratu
    glColor3f( 1.0, 0.0, 0.0 );
   
    // początek definicji wielokąta
    glBegin( GL_POLYGON );
   
    // kolejne wierzchołki wielokąta
    glVertex3f( 0.0, 0.0, 0.0 );
    glVertex3f( 0.0, 1.0, 0.0 );
    glVertex3f( 1.0, 1.0, 0.0 );
    glVertex3f( 1.0, 0.0, 0.0 );
   
    // koniec definicji prymitywu
    glEnd();
   
    // skierowanie poleceń do wykonania
    glFlush();
   
    // zamiana buforów koloru
    glutSwapBuffers();
}


int main( int argc, char * argv[] )
{
    // inicjalizacja biblioteki GLUT
    glutInit( & argc, argv );
   
    // inicjalizacja bufora ramki
    glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB );
   
    // rozmiary głównego okna programu
    glutInitWindowSize( 400, 400 );
   
    // utworzenie głównego okna programu
    glutCreateWindow( "Kwadrat 1" );
   
    // dołączenie funkcji generującej scenę 3D
    glutDisplayFunc( Display );
   
   
    // wprowadzenie programu do obsługi pętli komunikatów
    glutMainLoop();
    return 0;
}

Niestety nadal są 2 errory, już inne:
1) unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup MSVCRTD.lib
2) 1 unresolved externals


Wszedłem w projest -> properties -> linker -> system -> sub sysytem i zmieniłem na CONSOLE(/SUBSYSTEM:CONSOLE), czyli tak jak było przedtem. I program zadziałał. Wyskoczyło okienko konsolowe i drugie okienko takie jakie powinno być, z kwadratem w rogu.

Co jest nie tak z tym? Co zrobić żeby zaczęło to w końcu dobrze działać?
P-101282
Bimbol
» 2014-01-06 23:49:34
Nie bardzo rozumiem co Ci nie działa. Ja linkuje do OpenGL takie biblioteki: freeglut.lib, glew32.lib, gltools.lib. Jednak tobie pewnie tylko potrzeba freeglut.lib.
Nie wiem gdzie wrzuciłeś gluta, ale chyba domyślnie jest w folderze GL, a dokładniej
#include <GL/glut.h>
.

Na twoim miejscu sięgnął bym do nowszej wersji OpenGL 3.2+, osobiście kupiłem sobie książkę do OpenGL, ale ktoś kiedyś polecił mi tę stronę http://www.arcsynthesis.org/gltut/.
Co prawda jest w języku angielskim i może Ci to nie odpowiadać.
P-101489
razy
Temat założony przez niniejszego użytkownika
» 2014-01-09 16:26:18
dalej taka sama sytuacja
P-101672
« 1 »
  Strona 1 z 1