如何在交叉编译vlc for windows时包含QtNetwork

时间:2013-01-17 11:15:48

标签: linux qt4 vlc qnetworkaccessmanager cross-compiling

我正在修改vlc源代码并添加了一些UI屏幕。我需要使用QtNetwork包,因为默认情况下vlc只有QtCore和QtGui包。

在为Linux编译时,我修改了主vlc configure.ac以包含QtNetwork,它工作正常。但是当我尝试按照标准过程进行交叉编译时,配置步骤失败,即

../ extras / package / win32 / configure.sh --host = i686-w64-mingw32

表示无法找到QtNetwork

更新 在QtNetwork启用后,我仍然得到对QtNetwork相关类及其功能的未定义引用。

1 个答案:

答案 0 :(得分:0)

我终于在VLC论坛上主要得到Olivier的帮助。它假设您已熟悉Linux上的Windows交叉编译vlc。

首先,正如使用QtNetwork为Linux编译的那样,我假设vlc parent下的configure.ac也直接包含QtGetwork在QtGui或QtCore所在的每个位置提到的。

其次,QtNetwork库已经建成,我们需要在“Core”和“Gui”之后添加“Network” contrib / src / qt4 / rules.mak,在“安装PKGCONFIG文件”部分下。当然,您还需要一个QtNetwork.pc.in文件(复制并调整QtGui.pc.in)。要添加的其他密钥库是-llws2_32和-lQtNetwork本身。

您还需要显式禁用OpenSSL支持,否则使用未解析的符号与libQtNetwork.a链接失败。一种方法是将QT_NO_OPENSSL添加到src / network / network.pro。由于此文件是在make .qt4期间生成的,因此应该为network.pro文件创建一个补丁,类似于rules.mak文件开头附近使用的其他补丁。

详细信息在following vlc开发线程