11

我正在尝试使用 QtCreator (2.7.2) + QT (5.1.0) 构建在桌面 (Linux) 和移动 (Android) 平台上运行的应用程序。

为此,我需要根据目标平台使用不同的预构建库。如何在 .pro 文件中指定它?

该向导仅提供 linux/mac/windows 作为平台选择,例如

unix:!mac {
message("* Using settings for Unix/Linux.")
LIBS += -L/path/to/linux/libs
}

我试过了

android { 
message("* Using settings for Android.")
LIBS += -L/path/to/android/libs
}

但是对于两个构建目标,只有unix:!mac执行/评估。

所以我的问题是:如何在 .pro 文件中检测构建目标(现在在 QtCreator 中称为“工具包”)并相应地更改库定义?

到目前为止,我只知道如何指定平台(这似乎是我正在构建的平台而不是 FOR)或构建变体 RELEASE/DEBUG。我发现的其他内容说我应该LIB+=在目标平台前面加上win32:LIB+=. 但同样,这不适用于android. 也许我在平台上使用了错误的语法(arm-v7 上的 android 4.2)。

4

2 回答 2

22

这对我有用(Qt 5.3.2)

linux:!android {
    message("* Using settings for Unix/Linux.")
    LIBS += -L/path/to/linux/libs
}

android { 
    message("* Using settings for Android.")
    LIBS += -L/path/to/android/libs
}
于 2014-10-29T00:13:20.423 回答
6

我在 .pro 文件中使用它,也许它有帮助:

unix:!macx:
{
    android:
    {
        INCLUDEPATH += "/usr/lib/boost/boost_1_47_0" \
                       inkscape
    }
    !android:
    {
        INCLUDEPATH += $$(BOOST_PATH) \
                    inkscape
    }
}
macx:
{
    INCLUDEPATH += "../../../../boost_1_54_0" \#$$(BOOST_PATH) \
                    inkscape
}
于 2013-09-25T21:06:58.850 回答