我正在修改vlc源代码,并添加了一些UI屏幕。我需要使用QtNetwork包,而默认vlc只有QtCore和QtGui包。
在编译Linux时,我修改了主vlc配置。把QtNetwork也包括进来,效果很好。但是,当我试图按照标准流程进行交叉编译时,配置步骤失败了,即
. ./配件/包/win32/configure.sh——主机= i686-w64-mingw32
表示无法找到QtNetwork
更新:后来当QtNetwork被启用时,我仍然得到对QtNetwork相关类及其函数的未定义引用。
我终于在VLC论坛上得到了Olivier的帮助。本文假设您已经熟悉在Linux上为windows交叉编译vlc。
首先,使用QtNetwork为Linux编译,我假设configure。vlc parent下的ac也直接包含QtNetwork,在QtGui或QtCore所在的每个位置。
其次,QtNetwork库已经建立,我们需要在"Core"one_answers"Gui"之后添加"Network"contrib/src/qt4/规则。在"安装PKGCONFIG文件"一节下。当然,您还需要一个QtNetwork.pc.in文件(复制并改编QtGui.pc.in)。要添加的其他密钥库是-llws2_32以及-lQtNetwork本身。
您还需要显式禁用OpenSSL支持,否则将链接到libQtNetwork。A因未解析的符号而失败。一种方法是将QT_NO_OPENSSL添加到src/network/network.pro。由于该文件是在make .qt4期间生成的,因此应该创建一个补丁并应用于网络。Pro文件类似于其他补丁开始时使用的规则。mak文件。
详细信息请参见以下vlc开发线程