2012-04-06 3 views
0

ich so unten in /root_project/main.cpp einen Code haben:versucht doch einfach eine Funktion einer Bibliothek zu nennen

#include "theoraplayer/TheoraVideoClip.h" 

unsigned int tex_id; 
TheoraVideoManager* mgr; 
TheoraVideoClip* clip; 
std::string window_name="glut_player"; 
bool started=1; 
int window_w=800,window_h=600; 

void draw() 
{ 
    glBindTexture(GL_TEXTURE_2D,tex_id); 

    TheoraVideoFrame* f=clip->getNextFrame(); //this gives an error!!! 
    if (f) 
    { 

und die TheoraVideoClip.h Datei ist in /root_project/include/theoraplayer/.

Innerhalb von TheoraVideoClip.h gibt es diese:

TheoraVideoFrame* getNextFrame(); 

Und wenn ich versuche, mit g++ -o app main.cpp -lGL -lglut -lGLU zu kompilieren Ich bin gerade diesen Fehler:

main.cpp:(.text+0xac2): undefined reference to `TheoraVideoClip::getNextFrame()'

Wer weiß, warum?

Ubuntu 11.10

Antwort

2

Sie müssen auch libtheoraplayer verknüpfen.

+0

wo? in dem Befehl zu kompilieren? Ich habe 'g ++ -o App main.cpp -lGL -lglut -lGLU -libtheoraplayer' aber es sagt '/ usr/bin/ld: kann -libtheoraplayer nicht finden'. – ziiweb

+0

@tirengarfio: Das sollte "-ltheoraplayer" sein, und da Sie die Bibliothek an einem nicht standardmäßigen Speicherort haben, müssen Sie wahrscheinlich auch '-L' verwenden, um diesen Speicherort anzugeben. – ildjarn

+0

Ich fand diesen Link http://www.cplusplus.com/forum/beginner/24862/ und jetzt schreibe ich dies: g ++ -o app main.cpp -lGL -lglut -lGLU -ltheora-ltheoradec aber der Fehler ist das selbe .. – ziiweb

Verwandte Themen