我正在尝试创建一个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-arm
,arm-linux
,linux-arm-gnueabi-g++
这样的东西,但没有运气。
有人知道制作这种条件定义的正确方法,或者如何检测我们是否在RaspberryPi架构中进行编译?
这对我有用:
linux {
contains(QMAKE_HOST.arch, arm.*):{
raspberry's bla bla bla
}else{
...
}
}
我希望这个对你有用。
http://doc.qt.io/qt-5/qmake-variable-reference.html#qmake-host
当前用于RPi3的Raspbian OS(32位)报告QMAKE_HOST.arch
为armv7l
,而较旧的主板\ OS可以报告armv6l
。
而64位构建,像Ubuntu Mate for Raspberry Pi:qazxsw poi
好吧,看起来没有人有答案,所以我做了一个对我有用的解决方法,如果它适合你,我会很高兴。
例如,在执行qmake时,我聚合了一个标志
aarch64
它将执行qmake递归并将标志传递给每个.pro文件。
在.pro文件中,您可以添加:
qmake CONFIG+=MQ_ARM -r
你可以分成另一个文件project.pri并包含在所有子项目.pro文件中,包含include(project.pri)
希望能帮助到你!