Bonjour,
n'ayant pas trouver beaucooup d'example concluant sous linux, je me lance a programmer un petit prog sous linux.....mais il faut un makefile kel galère!
bon voila mes petit prog
particle.h
particle.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 // particle.h #include <Cg/cgGL.h> //using namespace glh; class Particle { public: Particle(int w, int h, int iterations); ~Particle(); int GetWidth() { return m_w; } int GetHeight() { return m_h; } void TimeStep(float dt); // step the simulation void ReadBack(); void Display(); // display particle system as points and lines void DisplayShaded(); // display shaded mesh void DisplayShaded2(); // display shaded mesh using render-to-vertex array void DisplayTextures(); // display position and normal textures private: void InitCg(); void DrawImage(); void CalculateNormals(); void DrawQuad(); int m_w, m_h; // size of grid int m_current, m_previous, m_dest; int m_iterations; // number of constraint iterations GLuint m_cloth_tex; };
et le prog principal prog.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #include <Cg/cgGL.h> #include "particle.h" Particle:: Particle(int w, int h, int iterations) : m_w(w), m_h(h), m_iterations(iterations) { m_current = 0; m_previous = 1; m_dest = 2; }; void Particle::DrawQuad() { glBegin(GL_QUADS); glTexCoord2f(0, 0); glVertex2f(0, 0); glTexCoord2f(m_w, 0); glVertex2f(m_w, 0); glTexCoord2f(m_w, m_h); glVertex2f(m_w, m_h); glTexCoord2f(0, m_h); glVertex2f(0, m_h); glEnd(); }
et mon makefile qui me donne l'erreur : make: *** No rule to make target `particle.c', needed by `particle.o'. Stop.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 #include <stdio.h> #include <Cg/cgGL.h> #include <Cg/cg.h> #include <GL/glut.h> #include "particle.h" // check for OpenGL errors void checkGLErrors(char *s) { GLenum error; while ((error = glGetError()) != GL_NO_ERROR) { fprintf(stderr, "%s: error - %s\n", s, (char *) gluErrorString(error)); } } void initGL() { glEnable(GL_DEPTH_TEST); glDisable(GL_DITHER); glClearColor(0.5, 0.5, 0.5, 1.0); checkGLErrors("initGL"); } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); glutInitWindowSize(512, 512); (void) glutCreateWindow("particle"); initGL(); part = new Particle(32, 32, 2); part->DrawQuad(); glutMainLoop(); return 0; }
j'ai essayé de tourner dans tous les sens mais sa marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 CC=g++ EXE = run OBJ = particle.o prog.o LIBS = -lCg -lCgGL -lglut -lGLU -lGL -lXi -lXmu -lpthread -lXext -lX11 -lm CFLAGS = -Wall all: $(EXE) $(EXE): $(OBJ) $(CC) -o $(EXE) $(OBJ) $(LIBS) particle.o: particle.c $(CC) -o particle.o -c particle.c prog.o: prog.c particle.h $(CC) -o prog.o -c prog.c $(CFLAGS) clean: rm $(EXE)
ca doit etre une erreur bidon mais bon, je suis pas tres fortiche pour ce genre de chose.j'espere que qqun pourra m'aider
merci!
Partager