Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: yoxter en 1 Octubre 2012, 03:40 am



Título: error compilando con glfw
Publicado por: yoxter en 1 Octubre 2012, 03:40 am
Saludos estaba empesando con opengl y tengo probelmas para compilar el primer ejemplo.  :-[

codigo que estoy usando
Código
  1. // Include standard headers
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. // Include GLEW
  6. #include <GL/glew.h>
  7.  
  8. // Include GLFW
  9. #include <GL/glfw.h>
  10.  
  11. // Include GLM
  12. #include <glm/glm.hpp>
  13. using namespace glm;
  14.  
  15. int main( void )
  16. {
  17. // Initialise GLFW
  18. if( !glfwInit() )
  19. {
  20. fprintf( stderr, "Failed to initialize GLFW\n" );
  21. return -1;
  22. }
  23.  
  24. glfwOpenWindowHint(GLFW_FSAA_SAMPLES, 4);
  25. glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
  26. glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 3);
  27. glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
  28.  
  29. // Open a window and create its OpenGL context
  30. if( !glfwOpenWindow( 1024, 768, 0,0,0,0, 32,0, GLFW_WINDOW ) )
  31. {
  32. fprintf( stderr, "Failed to open GLFW window. If you have an Intel GPU, they are not 3.3 compatible. Try the 2.1 version of the tutorials.\n" );
  33. glfwTerminate();
  34. return -1;
  35. }
  36.  
  37. // Initialize GLEW
  38. if (glewInit() != GLEW_OK) {
  39. fprintf(stderr, "Failed to initialize GLEW\n");
  40. return -1;
  41. }
  42.  
  43. glfwSetWindowTitle( "Tutorial 01" );
  44.  
  45. // Ensure we can capture the escape key being pressed below
  46. glfwEnable( GLFW_STICKY_KEYS );
  47.  
  48. // Dark blue background
  49. glClearColor(0.0f, 0.0f, 0.3f, 0.0f);
  50.  
  51. do{
  52. // Draw nothing, see you in tutorial 2 !
  53.  
  54. // Swap buffers
  55. glfwSwapBuffers();
  56.  
  57. } // Check if the ESC key was pressed or the window was closed
  58. while( glfwGetKey( GLFW_KEY_ESC ) != GLFW_PRESS &&
  59.   glfwGetWindowParam( GLFW_OPENED ) );
  60.  
  61. // Close OpenGL window and terminate GLFW
  62. glfwTerminate();
  63.  
  64. return 0;
  65. }
  66.  
  67.  

Código:
g++ 1.cpp -I/usr/include -L/usr/lib -L/usr/lib64 -LGL -Lglew -Lglfw -Lglut
1.cpp: In function ‘int main()’:
1.cpp:25:21: error: ‘GLFW_OPENGL_VERSION_MAJOR’ was not declared in this scope
1.cpp:26:21: error: ‘GLFW_OPENGL_VERSION_MINOR’ was not declared in this scope
1.cpp:27:21: error: ‘GLFW_OPENGL_PROFILE’ was not declared in this scope
1.cpp:27:42: error: ‘GLFW_OPENGL_CORE_PROFILE’ was not declared in this scope


Código
  1. clang++ 1.cpp -I/usr/include -L/usr/lib -L/usr/lib64 -LGL -Lglew -Lglfw -Lglut
  2. 1.cpp:25:21: error: use of undeclared identifier 'GLFW_OPENGL_VERSION_MAJOR'
  3.        glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
  4.                           ^
  5. 1.cpp:26:21: error: use of undeclared identifier 'GLFW_OPENGL_VERSION_MINOR'
  6.        glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 3);
  7.                           ^
  8. 1.cpp:27:21: error: use of undeclared identifier 'GLFW_OPENGL_PROFILE'
  9.        glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
  10.                           ^
  11. 3 errors generated.


si pudieran ayudarme estaria agredecido.
estoy seguro de que glfw esta instalado, estoy usando gentoo.


Título: Re: error compilando con glfw
Publicado por: 0xDani en 1 Octubre 2012, 16:24 pm
No conozco el clang, pero en los parametros de linkaje en gcc/g++ se pondria:
Código:
-lGL -lglew -lglfw -lglut
en vez de:
Código:
-LGL -Lglew -Lglfw -Lglut

Saludos.


Título: Re: error compilando con glfw
Publicado por: yoxter en 1 Octubre 2012, 19:31 pm
No conozco el clang, pero en los parametros de linkaje en gcc/g++ se pondria:
Código:
-lGL -lglew -lglfw -lglut
en vez de:
Código:
-LGL -Lglew -Lglfw -Lglut

Saludos.

Gracias por la respuesta al final el problema fue mi version de glfw tenia la 2.6 y solo en la 2.7 se incluyo GLFW_OPENGL_VERSION_MAJOR y GLFW_OPENGL_PROFILE, removi la version 2.6 he instale la 2.7 manualmente el camando quedo a si :

Código
  1. g++  1.cpp -o 1 -I/usr/include -L/usr/lib64 -lGL -lGLEW -lglfw