Russian Qt Forum

Qt => Мультимедиа => Тема начата: sibmail от Апрель 08, 2011, 12:23



Название: помогите разобраться со Speex'ом
Отправлено: sibmail от Апрель 08, 2011, 12:23
altlinux. установил speex. создал проект в qtcreator. согласно примеру

#include <speex/speex.h>
#include <stdio.h>

#define FRAME_SIZE 160
int main(int argc, char **argv)
{
   char *inFile;
   FILE *fin;
   short in[FRAME_SIZE];
   float input[FRAME_SIZE];
   char cbits[200];
   int nbBytes;
   void *state;
   SpeexBits bits;
   int i, tmp;
   state = speex_encoder_init(&speex_nb_mode);
....

пишет undefined reference to speex_nb_mode
может в .pro прописать какие-нить либы


Название: Re: помогите разобраться со Speex'ом
Отправлено: Пантер от Апрель 08, 2011, 12:26
Конечно, в pro нужно прописать либу speex, чтобы она прилинковалась.


Название: Re: помогите разобраться со Speex'ом
Отправлено: sibmail от Апрель 08, 2011, 13:16
прописал LIBS = -L/usr/local/lib -libspeex

видимо не то. подскажите что надо прописать


Название: Re: помогите разобраться со Speex'ом
Отправлено: Пантер от Апрель 08, 2011, 13:23
-lspeex


Название: Re: помогите разобраться со Speex'ом
Отправлено: sibmail от Апрель 08, 2011, 13:28
пошло потихоньку. спасибо!
а почему именно lspeex? это где в документации написано?


Название: Re: помогите разобраться со Speex'ом
Отправлено: Пантер от Апрель 08, 2011, 13:35
Все либы так линкуются. Т.е. lib опускается.


Название: Re: помогите разобраться со Speex'ом
Отправлено: sibmail от Апрель 08, 2011, 13:43
LIBS += -L C:/Qt/2010.05/qt/audi-speex/audi1/bin -lspeex
а для винды не получается, не видит бибилотеку
..bin/libspeex.dll
..lib/libspeex.lib




Название: Re: помогите разобраться со Speex'ом
Отправлено: sibmail от Май 11, 2011, 12:26
вернемся к теме, т.к. вопрос не решен.
qt4.7, библиотеки speex скачены от сюда http://downloads.xiph.org/releases/speex/speex-1.2beta3-win32.zip

в *.pro файле прописал
LIBS += -lspeex

в cpp 
Код:
#include <speex/speex.h>
....
char *inFile;
       FILE *fin;
       short in[FRAME_SIZE];
       float input[FRAME_SIZE];
       char cbits[200];
       int nbBytes;
       /*Holds the state of the encoder*/
       void *state;
       /*Holds bits so they can be read and written to by the Speex routines*/
       SpeexBits bits;
       int i, tmp;

       /*Create a new encoder state in narrowband mode*/
       state = speex_encoder_init(&speex_nb_mode);
....
но все равно ругается  undefined reference to `speex_nb_mode'

тот же проект в линуксе не выдает ошибки.


Название: Re: помогите разобраться со Speex'ом
Отправлено: m_ax от Май 11, 2011, 19:15
Цитировать
в *.pro файле прописал
LIBS += -lspeex
Этого не достаточно. В .pro файле нужно прописать путь к хедерам:
INCLUDEPATH += /путь_где_лежат_h

И путь где лежат сами либы:
LIBS += -L/путь_к_либам -lspeex

Уж который раз об ентом пишу)