【问题标题】:compiling windows Qt code in Linux and changes in libraries在 Linux 中编译 windows Qt 代码和库中的更改
【发布时间】:2013-06-26 15:13:45
【问题描述】:

我有一个在 Qt(Windows 环境)中开发的代码,我想在 Linux 中编译它,我注意到有一些不同的库,我可以从中找出两个,但我没有找到其余的..我想寻求任何经历过这个问题的人的帮助:

在 Windows 中:

LIBS += -lopengl32 \
-lglu32 \
-lcomdlg32 \
-lQAxServerd \
-lphonond4

到 Linux:

LIBS += -lGL \
-lGLU \

现在为 QAxserver .. 我的 QT 环境中没有它,我找不到可以下载它的地方!

【问题讨论】:

    标签: c++ linux windows 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
    }
    

    【讨论】:

      猜你喜欢
      • 2012-05-11
      • 1970-01-01
      • 2020-02-09
      • 2016-03-26
      • 2020-04-02
      • 1970-01-01
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多