c++ RaspberryPi的qmake条件

py49o6xq  于 2023-06-25  发布在  其他
关注(0)|答案(4)|浏览(219)

我正在尝试制作一个qmak.pro文件,以便在RaspberryPi中编译(不是交叉编译)。我可以根据平台使用条件定义吗:

  1. linux-g++-64: {
  2. message(We are in Linux 64 bits)
  3. }
  4. macx: {
  5. message(we are in mac osX)
  6. }
  7. win32: ...

但是我找不到一种方法来检测当我在PaspberryPi与raspberryPi中。
我试过像linux-armarm-linuxlinux-arm-gnueabi-g++这样的东西,但不走运。
有人知道正确的方法来创建这个条件定义,或者如何检测我们是否在RaspberryPi架构中编译?

jgwigjjp

jgwigjjp1#

这对我很有效:

  1. linux {
  2. contains(QMAKE_HOST.arch, arm.*):{
  3. raspberry's bla bla bla
  4. }else{
  5. ...
  6. }
  7. }

希望对你有用。
http://doc.qt.io/qt-5/qmake-variable-reference.html#qmake-host

3pmvbmvn

3pmvbmvn2#

当前的Raspbian OS(32位)for RPi3将QMAKE_HOST.arch报告为armv7l,而较旧的board\OS可以报告armv6l
64位版本,比如Ubuntu for RaspberryPi:aarch64

gwbalxhn

gwbalxhn3#

好吧,看起来没有人有答案,所以我做了一个适合我的变通方法,如果它适合你,我会很高兴。
在执行qmake时,我聚合一个标志,例如

  1. qmake CONFIG+=MQ_ARM -r

它将执行qmake recursive并将标志传递给每个.pro文件。
在.pro文件中,您可以添加以下内容:

  1. MQ_ARM {
  2. LIBS +=bla bla
  3. message(USING ARM LIBRARY)
  4. } else:MQ_i686 {
  5. LIBS +=bla bla
  6. message(USING 32bits LIBRARY)
  7. }
  8. else {
  9. LIBS +=bla bla bla
  10. message(qmake configurated as x86_64 if you want another conf use qmake CONFIG+=MQ_ARM project.pro -
  11. }

您可以将project.pri分离到另一个文件中,并使用include(project.pri)将其包含在所有子project.pro文件中
希望能帮上忙!

展开查看全部
qf9go6mv

qf9go6mv4#

  1. contains(QMAKESPEC,.*linux-rasp-pi\d*-.*){
  2. message(rpi)
  3. CONFIG += rpi
  4. DEFINES += RASPBERRY_PI
  5. }

相关问题