मैं रास्पबेरीपी में संकलित करने के लिए एक 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++
जैसी कुछ कोशिश की है लेकिन किस्मत नहीं।
किसी को यह सशर्त परिभाषा बनाने का सही तरीका पता है या यह कैसे पता लगाया जाए कि हम रास्पबेरीपी आर्किटेक्चर में संकलित कर रहे हैं या नहीं?
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
RPi3 रिपोर्ट के लिए वर्तमान रास्पियन OS (32 बिट) QMAKE_HOST.arch
को armv7l
के रूप में, जबकि पुराने बोर्ड\OS armv6l
की रिपोर्ट कर सकते हैं।
जबकि 64 बिट बनाता है, जैसे रास्पबेरीपी के लिए उबंटूमेट: aarch64
ठीक है, ऐसा लगता है कि किसी के पास कोई जवाब नहीं है, इसलिए मैंने एक समाधान किया जो मेरे लिए काम करता है और अगर यह आपके लिए काम करता है तो मुझे खुशी होगी।
उदाहरण के लिए, 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 फ़ाइलों में शामिल (प्रोजेक्ट.प्री) के साथ शामिल कर सकते हैं
आशा है कि इससे सहायता मिलेगी!
संबंधित सवाल
नए सवाल
c++
C ++ एक सामान्य-प्रयोजन प्रोग्रामिंग भाषा है। यह मूल रूप से C के विस्तार के रूप में डिज़ाइन किया गया था और इसमें एक समान सिंटैक्स है, लेकिन यह अब पूरी तरह से अलग भाषा है। C ++ कंपाइलर के साथ संकलित कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें। विशिष्ट मानक संशोधन [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] या [C ++ 23], आदि से संबंधित प्रश्नों के लिए संस्करण-विशिष्ट टैग का उपयोग करें। ।