问题描述:
在linux下有播放声音文件的需求,想到最简单的方法 --QSound。但是 在 linux下 ,QSound::isAvailabel()总是返回 false;查看帮助文档 ,得知 : The Network Audio System is used if available, otherwise all operations work silently. NAS supports WAVE and AU files.
于是 ,安装 NAS获得 NAS支持 。安装好了 最新的 nas-dev后 。重新配置编译 QT。
- $configure -debug-and-release -system-nas-sound
- $make
- $make install
make阶段出现如下错误 :
- .obj/release-shared/qsound_x11.o: In function `QAuServerNAS::dataReceived()':
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:255: undefined reference to `AuHandleEvents'
- .obj/release-shared/qsound_x11.o: In function `~QAuServerNAS':
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:139: undefined reference to `AuCloseServer'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:139: undefined reference to `AuCloseServer'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:139: undefined reference to `AuCloseServer'
- .obj/release-shared/qsound_x11.o: In function `QAuServerNAS::stop(QSound*)':
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:227: undefined reference to `AuStopFlow'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:228: undefined reference to `AuFlush'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:230: undefined reference to `AuFlush'
- .obj/release-shared/qsound_x11.o: In function `QAuServerNAS::play(QSound*)':
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:215: undefined reference to `AuSoundPlayFromBucket'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:216: undefined reference to `AuFlush'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:218: undefined reference to `AuFlush'
- .obj/release-shared/qsound_x11.o: In function `QAuServerNAS::play(QString const&)':
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:162: undefined reference to `AuSoundPlayFromFile'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:163: undefined reference to `AuFlush'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:165: undefined reference to `AuFlush'
- .obj/release-shared/qsound_x11.o: In function `QAuServerNAS::init(QSound*)':
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:243: undefined reference to `AuSoundCreateBucketFromFile'
- .obj/release-shared/qsound_x11.o: In function `QAuServerNAS':
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:123: undefined reference to `AuOpenServer'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:125: undefined reference to `AuSetCloseDownMode'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:123: undefined reference to `AuOpenServer'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:125: undefined reference to `AuSetCloseDownMode'
- .obj/release-shared/qsound_x11.o: In function `~QAuBucketNAS':
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:77: undefined reference to `AuSync'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:78: undefined reference to `AuDestroyBucket'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:81: undefined reference to `AuScanEvents'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:77: undefined reference to `AuSync'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:78: undefined reference to `AuDestroyBucket'
- /home/celanc/qtsdk/qt/src/gui/kernel/qsound_x11.cpp:81: undefined reference to `AuScanEvents'
- collect2: ld 返回 1
- make[1]: *** [../../lib/libQtGui.so.4.6.0] 错误 1
- make[1]:正在离开目录 `/home/celanc/qtsdk/qt/src/gui'
- make: *** [sub-gui-make_default-ordered] 错误 2
解决方案 :
请对Linux下 QSound有研究的各位前辈帮帮忙 ,告之小弟详细的 解决步骤 ,不甚感激 !