Russian Qt Forum
Ноябрь 23, 2024, 03:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: помогите разобраться со Speex'ом  (Прочитано 7627 раз)
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 прописать какие-нить либы
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Апрель 08, 2011, 12:26 »

Конечно, в pro нужно прописать либу speex, чтобы она прилинковалась.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
sibmail
Гость
« Ответ #2 : Апрель 08, 2011, 13:16 »

прописал LIBS = -L/usr/local/lib -libspeex

видимо не то. подскажите что надо прописать
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Апрель 08, 2011, 13:23 »

-lspeex
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
sibmail
Гость
« Ответ #4 : Апрель 08, 2011, 13:28 »

пошло потихоньку. спасибо!
а почему именно lspeex? это где в документации написано?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Апрель 08, 2011, 13:35 »

Все либы так линкуются. Т.е. lib опускается.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
sibmail
Гость
« Ответ #6 : Апрель 08, 2011, 13:43 »

LIBS += -L C:/Qt/2010.05/qt/audi-speex/audi1/bin -lspeex
а для винды не получается, не видит бибилотеку
..bin/libspeex.dll
..lib/libspeex.lib


Записан
sibmail
Гость
« Ответ #7 : Май 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'

тот же проект в линуксе не выдает ошибки.
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #8 : Май 11, 2011, 19:15 »

Цитировать
в *.pro файле прописал
LIBS += -lspeex
Этого не достаточно. В .pro файле нужно прописать путь к хедерам:
INCLUDEPATH += /путь_где_лежат_h

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

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

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.12 секунд. Запросов: 23.