मैं रास्पबेरीपी में संकलित करने के लिए एक qmake .pro फ़ाइल बनाने की कोशिश कर रहा हूं (क्रॉस संकलन के लिए नहीं)। क्या मैं मंच के आधार पर सशर्त परिभाषाओं का उपयोग कर सकता हूं:

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

लेकिन जब मैं रास्पियन के साथ एक PaspberryPi में हूं तो मुझे पता लगाने का कोई तरीका नहीं मिल रहा है।

मैंने linux-arm, arm-linux, linux-arm-gnueabi-g++ जैसी कुछ कोशिश की है लेकिन किस्मत नहीं।

किसी को यह सशर्त परिभाषा बनाने का सही तरीका पता है या यह कैसे पता लगाया जाए कि हम रास्पबेरीपी आर्किटेक्चर में संकलित कर रहे हैं या नहीं?

6
Mquinteiro 26 अप्रैल 2016, 20:04

3 जवाब

सबसे बढ़िया उत्तर

यह मेरे लिए काम किया:

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

    }else{
        ...
    }
}

आशा है कि ये आपके काम आएगा।

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

4
Amanda Shiokawa N Freitas 30 सितंबर 2016, 16:36

RPi3 रिपोर्ट के लिए वर्तमान रास्पियन OS (32 बिट) QMAKE_HOST.arch को armv7l के रूप में, जबकि पुराने बोर्ड\OS armv6l की रिपोर्ट कर सकते हैं।

जबकि 64 बिट बनाता है, जैसे रास्पबेरीपी के लिए उबंटूमेट: aarch64

1
Andrey Azazello Yaromenok 4 अप्रैल 2019, 11:51

ठीक है, ऐसा लगता है कि किसी के पास कोई जवाब नहीं है, इसलिए मैंने एक समाधान किया जो मेरे लिए काम करता है और अगर यह आपके लिए काम करता है तो मुझे खुशी होगी।

उदाहरण के लिए, qmake को निष्पादित करने के लिए मैं एक ध्वज को एकत्रित करता हूँ

qmake CONFIG+=MQ_ARM -r

यह qmake रिकर्सिव निष्पादित करेगा और प्रत्येक .pro फ़ाइल को ध्वज पास करेगा।

.pro फ़ाइल में आप इसे जोड़ सकते हैं:

MQ_ARM {
    LIBS +=bla bla
    message(USING ARM LIBRARY)
} else:MQ_i686 {
    LIBS +=bla bla
    message(USING 32bits LIBRARY)
}
else {
    LIBS +=bla bla bla
    message(qmake configurated as x86_64 if you want another conf use qmake CONFIG+=MQ_ARM project.pro -
}

आप किसी अन्य फ़ाइल project.pri में अलग कर सकते हैं और सभी सबप्रोजेक्ट .pro फ़ाइलों में शामिल (प्रोजेक्ट.प्री) के साथ शामिल कर सकते हैं

आशा है कि इससे सहायता मिलेगी!

0
Mquinteiro 9 मई 2016, 15:49