osx mavericks update Qt5 लक्ष्य सशर्त नहीं मिला




हाउ तो वोट#इंडिया डेट (12)

Qt 5.5, MacOS 10.10.4 में यही समस्या थी। मैंने प्रोजेक्ट निर्देशिका से .qmake.conf और .qmake.stash को हटा दिया।

https://code.i-harness.com

मैंने अभी OS X Mavericks में कमांड लाइन टूल्स के नवीनतम संस्करण को अपडेट किया है और अब मेरे (पहले से काम कर रहे) कोड को संकलित करते समय यह निम्न त्रुटि को फेंकता है

> clang: warning: no such sysroot directory:
> '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk'
> In file included from ../QtOpenGL/Main.cpp:1: In file included from
> ../../Qt/5.3/clang_64/lib/QtWidgets.framework/Versions/5/Headers/QApplication:1:
> In file included from
> ../../Qt/5.3/clang_64/lib/QtWidgets.framework/Versions/5/Headers/qapplication.h:45:
> In file included from
> /Users/BB/Qt/5.3/clang_64/lib/QtCore.framework/Headers/qcoreapplication.h:45:
> In file included from
> /Users/BB/Qt/5.3/clang_64/lib/QtCore.framework/Headers/qglobal.h:76:
> /Users/BB/Qt/5.3/clang_64/lib/QtCore.framework/Headers/qsystemdetection.h:196:12:
> fatal error: 'TargetConditionals.h' file not found
> #  include <TargetConditionals.h>
>            ^ 1 error generated. make: *** [Main.o] Error 1 20:29:52: Le processus "/usr/bin/make" s'est terminé avec le code 2. Erreur lors
> de la compilation/déploiement du projet QtOpenGL (kit : Desktop Qt
> 5.3.0 clang 64bit) When executing step "Make"

क्या किसी को पता है कि अगर इस लाइन को बदल रहा है

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk

से sdk 8 से 9 काम करेगा? यदि हां, तो Qt5 के मापदंडों में मैं इसे कहां बदल सकता हूं?


Qt 5.8 और iOS बिल्ड के लिए मैंने XCode फ़ोल्डर्स में sdk के लिए प्रतीकात्मक लिंक जोड़ा:

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
ln -s iPhoneOS.sdk iPhoneOS10.0.sdk

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
ln -s iPhoneSimulator.sdk/ iPhoneSimulator10.2.sdk

अन्य लोगों के संदर्भ के लिए, मैंने अपने प्लेटफ़ॉर्म mkspec फ़ाइल को संपादित करके समस्या को हल किया:

/users/nic/Qt/5.3/clang_64/mkspecs/qdevice.pri

निम्नलिखित पंक्ति बदलें:

!host_build:QMAKE_MAC_SDK = macosx10.8

इसके लिए:

!host_build:QMAKE_MAC_SDK = macosx10.9

अपनी परियोजना को साफ करें और qmake को फिर से चलाएं।

Nic।


मुझे पता चला कि मेरे प्रोजेक्ट रूट में फ़ाइल ".qmake.cache" का मैक ओएस 10.8 पर संदर्भ था। समाधान फ़ाइल को हटाने और खरोंच से परियोजना का निर्माण करना था।


मेरे लिए, आउटपुट डायरेक्टरी कंटेंट को मैन्युअल रूप से डिलीट करने से समस्या (Qt 5.9, Xcode9, MacOS 10.12.6) तय हो गई। सफाई / पुनर्निर्माण ने कुछ भ्रष्ट चीजें छोड़ दीं।


मैं macosx10.13 पर Qt5.8 का उपयोग कर रहा हूं, मैंने इस लाइन को जोड़कर फ़ाइल /usr/local/Cellar/qt-legacy-formula/5.8.0_1/mkspecs/qdevice.pri फाइल को संपादित करके इस समस्या को हल किया:

!host_build:QMAKE_MAC_SDK = macosx10.13

मैं अभी XCode 9 में अपग्रेड हुआ और मुझे macOS Sierra (10.12) में यह समस्या होने लगी। समस्या यह है कि Xcode ने डिफ़ॉल्ट सिमिलिंक को 10.13 में स्थानांतरित कर दिया। तै होना:

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
sudo ln -s MacOSX.sdk MacOSX10.12.sdk

मैं सिर्फ अपना अनुभव जोड़कर इस पर टिप्पणी करना चाहता था। मैंने हाल ही में हाई सिएरा, XCode 9.2, और Qt5.10 को अपडेट किया और XCode लाइसेंस संदेश मुझे बैटी चला रहा था!

Qdevice.pri में मैं बदल गया

QMAKE_MAC_SDK = macosx

सेवा मेरे

QMAKE_MAC_SDK = macosz10.13

लेकिन वह सब नहीं था जो मुझे चाहिए था। मुझे बिल्ड निर्देशिका से .qmake.stash और Makefile फ़ाइलों को निकालना पड़ा। मुझे यकीन है कि Makefile को हटाने की ज़रूरत नहीं थी, लेकिन मैंने इसे वैसे भी किया। फिर मैंने * .pro.user फ़ाइलें हटा दीं ताकि मैं QtCreator द्वारा पुन: कॉन्फ़िगर करने के लिए बाध्य कर सकूं। मुझे मजबूर किया या मुझे अपडेट किए गए Qt संस्करण का चयन करने दिया। इससे पहले मुझे लगता है कि यह सामान के पुराने संस्करणों का उपयोग करने की कोशिश कर रहा था। इसलिए, अपनी परियोजना में पुराने सामान के सभी संदर्भों को साफ करना और नए का चयन करना महत्वपूर्ण है।


मैंने Xt 10.13 स्थापित करने से पहले Qt 5.9.1 स्थापित किया। चूंकि मैंने Xcode को अपग्रेड किया था, इसलिए निम्न चेतावनी के साथ त्रुटि संदेश दिखाई देने लगा था।

:-1: warning: no such sysroot directory: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk' [-Wmissing-sysroot]

मैंने निम्नलिखित लाइन को बदलते हुए समस्या को हल किया

QMAKE_MAC_SDK = macosx

सेवा मेरे

QMAKE_MAC_SDK = macosx10.13

निम्नलिखित फ़ाइल में:

path_where_I_installed_qt/Qt/5.9.1/clang_64/mkspecs/qdevice.pri

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


यदि आप OS X के अलावा अन्य प्लेटफार्मों में संकलन करते हैं, तो BRBbit27 समाधान का सुधार होगा:

macx {
QMAKE_MAC_SDK = macosx10.9
}

.pro फ़ाइल में निम्न पंक्ति जोड़कर परियोजना को संकलित करना भी संभव है

QMAKE_MAC_SDK = macosx10.9

विधि 1

हर बार जब आप Xcode अपग्रेड करते हैं तो इस तरह की त्रुटि दिखाई देगी

इसलिए आप निर्माण करने से पहले qt में कैश फ़ाइल को निकाल सकते हैं या त्रुटि मिलने पर बस हटा सकते हैं

rm {your target build folder}/.qmake.stash

या

rm {your project folder}/.qmake.stash

यदि आप नहीं जानते कि कहां से खोजें .qmake.stash , कोशिश करें

find ~ -name .qmake.stash

विधि 2

अनुशंसा नहीं करें क्योंकि जब आप Xcdoe APP का उपयोग करते हैं तो आपको बिल्ड त्रुटि मिल सकती है

iPhoneOS

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
sudo ln -s iPhoneOS.sdk iPhoneOS{version}.sdk

iPhoneSimulator

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/
sudo ln -s iPhoneSimulator.sdk iPhoneSimulator{version}.sdk