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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QAudioFormat и ссылка на неразрешенный внешний симвl  (Прочитано 6134 раз)
lazy
Гость
« : Декабрь 14, 2011, 10:27 »

Здравствуйте, уважаемые форумчане.
Сразу прошу прощения, если вопрос нубский. Поиск по "ссылка на неразрешенный внешний символ" выводил на несовсем внятные ответы, поэтому крайне нуждаюсь в том, чтобы меня ткнули носом, в чем я не прав.

Пишу простенький проект по записи звука с звуковой карты. На форме кнопка, в обработчике clicked()  кнопки следующий код, который подсмотрен на doc.qt.nokia.com/4.6/qaudioinput.html

Код:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QtMultimedia\qaudioinput.h"
#include "qiodevice.h"
#include "QFile"
#include "QtMultimedia\qaudioformat.h"

//...

void MainWindow::on_pushButton_2_clicked()
{
    QFile outputFile;   // class member.
    QAudioInput* audio; // class member.


      outputFile.setFileName("C:\temp\test.raw");
      outputFile.open( QIODevice::WriteOnly | QIODevice::Truncate );


      QAudioFormat format; // <= и вот тут мы затыкаемся.
// .. далее идут настройки format, которые вобщем то не имеют значения, т.к. у нас затруднение с самим QAudioFormat
}
При компиляции вываливаемся с ошибками:

Код:
Выполняется сборка проекта untitled...
Настройки не изменились, этап qmake пропускается.
Запускается: «D:\QtSDK\QtCreator\bin\jom.exe»
D:\QtSDK\QtCreator\bin\jom.exe -nologo -j 2 -f Makefile.Debug
cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"d:\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\QtCore" -I"d:\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\QtGui" -I"d:\QtSDK\Desktop\Qt\4.7.4\msvc2008\include" -I"d:\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\ActiveQt" -I"debug" -I"." -I"..\untitled" -I"." -I"d:\QtSDK\Desktop\Qt\4.7.4\msvc2008\mkspecs\win32-msvc2008" -Fodebug\ @C:\temp\mainwindow.obj.3764.0.jom
mainwindow.cpp
..\untitled\mainwindow.cpp(25) : warning C4101: audio: неиспользованная локальная переменная
link /LIBPATH:"d:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib" /NOLOGO /DEBUG /MANIFEST /MANIFESTFILE:"debug\untitled.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /OUT:debug\untitled.exe @C:\temp\untitled.exe.3764.1438.jom
mainwindow.obj : error LNK2019: ссылка на неразрешенный внешний символ "__declspec(dllimport) public: __thiscall QAudioFormat::~QAudioFormat(void)" (__imp_??1QAudioFormat@@QAE@XZ) в функции "private: void __thiscall MainWindow::on_pushButton_2_clicked(void)" (?on_pushButton_2_clicked@MainWindow@@AAEXXZ)
mainwindow.obj : error LNK2019: ссылка на неразрешенный внешний символ "__declspec(dllimport) public: __thiscall QAudioFormat::QAudioFormat(void)" (__imp_??0QAudioFormat@@QAE@XZ) в функции "private: void __thiscall MainWindow::on_pushButton_2_clicked(void)" (?on_pushButton_2_clicked@MainWindow@@AAEXXZ)
debug\untitled.exe : fatal error LNK1120: 2 неразрешенных внешних элементов

jom 1.0.6 - empower your cores

command failed with exit code 1120
command failed with exit code 2
Процесс «D:\QtSDK\QtCreator\bin\jom.exe» завершился с кодом 2.
Возникла ошибка при сборке проекта untitled (цель: Desktop)
Во время выполнения сборки на этапе «Сборка»


Вобщем не хочет он создавать QAudioFormat и никаких идей, в какую сторону с этим бороться я не могу придумать.

Буду признателен за любую помощь или подсказки.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #1 : Декабрь 14, 2011, 10:31 »

В pro файле:
QT += multimedia
Записан

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

Огромное спасибо, после добавления в файл .pro строки "QT += multimedia" перестало ругаться.  Улыбающийся
А можно теперь еще попросить пояснение, "что это было"?  Строит глазки
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #3 : Декабрь 14, 2011, 10:49 »

Ты не подключил нужный модель для линковки.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #4 : Декабрь 14, 2011, 12:59 »

Код
C++ (Qt)
outputFile.setFileName("C:\temp\test.raw");
надо:
Код
C++ (Qt)
outputFile.setFileName("C:\\temp\\test.raw");
или
Код
C++ (Qt)
outputFile.setFileName("C:/temp/test.raw");
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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