【问题标题】:Qt - How to compile a particular plugin/componentQt - 如何编译特定的插件/组件
【发布时间】: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


【解决方案1】:

对我来说添加: LIBS += -lphonon 到 .pro 文件工作正常。

如果这没有帮助,请查看:http://www.qtcentre.org/wiki/index.php?title=How_to_get_Phonon_working 并检查您是否拥有其中所述的所有文件。

【讨论】:

  • 我的链接看起来很有帮助,这很好。为什么不投票赞成我的答案? :) @prabhakaran
  • 请检查问题。您的解决方案是解决问题,但不是直接的答案。实际上,“Raiv”的第一条评论是这个问题的完美答案。我期待更清晰的概括性答案,因为这个问题是一个概括性的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-10
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-17
相关资源
最近更新 更多