【发布时间】:2011-06-02 06:47:35
【问题描述】:
我使用的是 Qt 4.7.2。我做了一个需要 mp3 支持的项目。所以我给它添加了声子支持。当我静态编译它时,它显示了一些链接错误,如下所示
Element.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public:
class Phonon::MediaSource __thiscall Phonon::MediaObject::currentSource(void)const "
(__imp_?currentSource@MediaObject@Phonon@@QBE?AVMediaSource@2@XZ) referenced in function
"public: void __thiscall Element::save(void)" (?save@Element@@QAEXXZ)
MainWindow.obj : error LNK2001: unresolved external symbol "__declspec(dllimport)
public: class Phonon::MediaSource __thiscall
Phonon::MediaObject::currentSource(void)const " (__imp_?
currentSource@MediaObject@Phonon@@QBE?AVMediaSource@2@XZ)
我在编译库时没有提供 -no-phonon 选项。但我怀疑默认情况下不会静态编译声子。有没有办法以静态方式单独编译 phonon,并在我的项目中链接该库(或复制粘贴该 dll)?
编辑: 可能是迟来的编辑。我把项目文件留在了某个地方。我必须在空闲时间挖掘它们。但是,它可能会帮助其他人。这来自“Lukasz Czerwinski”所述的链接。我想这就是原因。
General rule #4: Phonon can't be compiled statically into your application and in
general Phonon will not work for statically built apps. Link your Phonon-based app
dynamically."
【问题讨论】:
-
如果你在windows上使用VS,在phonon目录中寻找configure创建的解决方案文件。如果它们存在,您可以从该目录运行 nmake。
-
@Raiv 我正在使用 mingw 在 qt-creator 上进行操作
-
然后尝试从 phonon dir 调用 qmake
-
不,你没有使用 mingw。您引用的错误消息来自 MS 链接器。另外,您可以发布您的 .pro 文件吗?
-
Phonon(及其插件后端)根本不支持静态编译。
标签: c++ windows qt compilation logic