对于RaspberryPi,qmake是有条件的

问题描述 投票:5回答:3

我正在尝试创建一个qmake .pro文件以在RaspberryPi中编译(不用于交叉编译)。我可以根据平台使用条件定义:

linux-g++-64: {
    message(We are in Linux 64 bits)
}
macx: {
    message(we are in mac osX)
}
win32: ...

但我无法找到一种方法来检测我何时使用带有raspbian的Raspberry Pi。

我尝试过像linux-armarm-linuxlinux-arm-gnueabi-g++这样的东西,但没有运气。

有人知道制作这种条件定义的正确方法,或者如何检测我们是否在RaspberryPi架构中进行编译?

c++ linux qt raspberry-pi qmake
3个回答
4
投票

这对我有用:

linux {
    contains(QMAKE_HOST.arch, arm.*):{
        raspberry's bla bla bla

    }else{
        ...
    }
}

我希望这个对你有用。

http://doc.qt.io/qt-5/qmake-variable-reference.html#qmake-host


1
投票

当前用于RPi3的Raspbian OS(32位)报告QMAKE_HOST.archarmv7l,而较旧的主板\ OS可以报告armv6l

而64位构建,像Ubuntu Mate for Raspberry Pi:qazxsw poi


0
投票

好吧,看起来没有人有答案,所以我做了一个对我有用的解决方法,如果它适合你,我会很高兴。

例如,在执行qmake时,我聚合了一个标志

aarch64

它将执行qmake递归并将标志传递给每个.pro文件。

在.pro文件中,您可以添加:

qmake CONFIG+=MQ_ARM -r

你可以分成另一个文件project.pri并包含在所有子项目.pro文件中,包含include(project.pri)

希望能帮助到你!

© www.soinside.com 2019 - 2024. All rights reserved.