在 Linux 中编译 windows Qt 代码和库中的更改
Posted
技术标签:
【中文标题】在 Linux 中编译 windows Qt 代码和库中的更改【英文标题】:compiling windows Qt code in Linux and changes in libraries 【发布时间】:2013-06-26 15:13:45 【问题描述】:我有一个在 Qt(Windows 环境)中开发的代码,我想在 Linux 中编译它,我注意到有一些不同的库,我可以从中找出两个,但我没有找到其余的..我想寻求任何经历过这个问题的人的帮助:
在 Windows 中:
LIBS += -lopengl32 \
-lglu32 \
-lcomdlg32 \
-lQAxServerd \
-lphonond4
到 Linux:
LIBS += -lGL \
-lGLU \
现在为 QAxserver .. 我的 QT 环境中没有它,我找不到可以下载它的地方!
【问题讨论】:
【参考方案1】:QAxServer 是 Qt 的 ActiveX 模块的一部分,称为“ActiveQt”。 ActiveX 是 Microsoft 的仅限 Windows 的框架。你不会发现它在其他任何地方实现。没有等价物。如果您在应用程序中使用该模块,该应用程序将无法移植到非 Windows 平台。
comdlg32 也是如此。这是 Microsoft 的 Windows 库。它不是便携式的。如果应用程序直接调用它,您需要重新实现该部分。
phonond4 虽然是 Qt 的 Phonon 模块。那是便携的。你不需要链接到它。只需在项目文件中添加QT += phonon
即可。
简而言之:您需要重新实现应用程序中调用特定于 Windows 的库的任何部分。
【讨论】:
另外两个呢:phnond4 和 comdlg32 @user573014 这些对我来说就像样板 DLL 依赖项。您根本不需要指定它们,除非应用程序本身直接调用这些库。 它确实调用了这些库 @user573014 那么也别无选择。 comdlg32 也是一个仅限 Windows 的库。 phonond4 虽然是 Qt 的 Phonon 模块。那是便携的。你不需要链接到它。只需在项目文件中添加QT += phonon
即可。【参考方案2】:
在 your_project.pro 文件中:
win32
LIBS += \
-lopengl32 \
-lglu32 \
-lcomdlg32 \
-lQAxServerd \
-lphonond4
linux
LIBS += -lGL -lGLU
【讨论】:
以上是关于在 Linux 中编译 windows Qt 代码和库中的更改的主要内容,如果未能解决你的问题,请参考以下文章
Qt Creator中根据为Windows系统还是Linux系统对源码进行条件编译
Linux下编译静态MinGW环境,编译windows平台Qt程序(使用MXE)