如何在.pro文件中为Android平台构建指定库?

Cha*_*_99 8 qt android cmake qt-creator

我正在尝试使用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
}
Run Code Online (Sandbox Code Playgroud)

我试过了

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

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

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

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

mch*_*son 17

这对我有用(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
}
Run Code Online (Sandbox Code Playgroud)


小智 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
}
Run Code Online (Sandbox Code Playgroud)