Qt5 Conditions cibles introuvables

Je viens de mettre à jour la dernière version des outils de ligne de commande dans OS X Mavericks et maintenant lors de la compilation de mon code (qui fonctionnait auparavant), il génère l'erreur suivante

> 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"

Est-ce que quelqu'un sait que si vous changez cette ligne

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

Du sdk 8 à 9 fonctionnerait? Si oui, où dans les paramètres de Qt5 puis-je changer cela?

36
demandé sur BRabbit27 2014-09-19 22:36:37

12 réponses

Pour la référence d'autres personnes, j'ai résolu le problème en éditant mon fichier mkspec de plate-forme:

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

Modifiez la ligne suivante:

!host_build:QMAKE_MAC_SDK = macosx10.8

À ceci:

!host_build:QMAKE_MAC_SDK = macosx10.9

Assurez-vous de nettoyer votre projet et exécutez à nouveau qmake.

Nic.

81
répondu Nicolas Christiaens 2014-09-21 17:43:47

Il est également possible de compiler le projet en ajoutant la ligne suivante au fichier .pro

QMAKE_MAC_SDK = macosx10.9
24
répondu BRabbit27 2014-10-02 21:53:44

Si vous compilez dans D'autres plates-formes que OS X, une amélioration de la solution BRabbit27 serait:

macx {
QMAKE_MAC_SDK = macosx10.9
}
10
répondu asam 2014-10-19 18:16:31

Je viens de passer à XCode 9 et j'ai commencé à avoir ce problème sur macOS Sierra (10.12). Le problème est que Xcode a déplacé le lien symbolique par défaut à 10.13. Pour corriger:

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
sudo ln -s MacOSX.sdk MacOSX10.12.sdk
9
répondu Pablo Diaz 2017-09-26 00:45:28

A eu le même problème dans Qt 5.5, MacOS 10.10.4. Je l'ai enlevé .qmake.conf et .qmake.stash du répertoire du projet.

8
répondu ceed 2015-08-05 14:56:28

J'ai découvert que le fichier ".qmake.cache " dans mon projet root avait une référence à Mac OS 10.8. La solution consistait à supprimer le fichier et à construire le projet à partir de zéro.

6
répondu Ralf Wirth 2014-10-10 12:56:38

J'ai installé Qt 5.9.1 avant D'installer Xcode 10.13. Depuis que j'ai mis à jour le Xcode, un message d'erreur avec l'avertissement suivant a commencé à apparaître.

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

J'ai résolu le problème en changeant la ligne suivante

QMAKE_MAC_SDK = macosx

À

QMAKE_MAC_SDK = macosx10.13

Dans le fichier suivant:

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

J'espère que cela fonctionne pour vous.

3
répondu mandroid 2017-10-05 01:43:53

Pour moi, la suppression manuelle du contenu du répertoire de sortie a résolu le problème (Qt 5.9, Xcode9, MacOS 10.12.6). Le nettoyage / reconstruction a laissé des choses corrompues.

2
répondu memcpy 2017-10-09 09:06:37

Pour Qt 5.8 et iOS build j'ai ajouté un lien symbolique au sdk dans les dossiers XCode:

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
0
répondu Libor B. 2017-04-11 13:21:20

J'utilise Qt5. 8 sur macosx10.13, j'ai résolu ce problème en éditant le fichier /usr/local/Cellar/qt-legacy-formula/5.8.0_1/mkspecs/qdevice.pri en ajoutant cette ligne:

!host_build:QMAKE_MAC_SDK = macosx10.13
0
répondu IGUIDER Walid 2017-12-08 22:35:13

Je voulais juste commenter cela en ajoutant mon expérience. J'ai récemment mis à jour à High Sierra, XCode 9.2 et Qt5. 10 et le message de licence XCode me conduisait batty!

Dans qdevice.pri j'ai changé

QMAKE_MAC_SDK = macosx

À

QMAKE_MAC_SDK = macosz10. 13

Mais ce n'était pas tout ce dont j'avais besoin. J'ai du enlevé le .qmake.stash et Makefile fichiers du répertoire de construction. Je ne suis pas sûr de supprimer le Makefile était nécessaire, mais je l'ai fait quand même. Ensuite, j'ai supprimé les fichiers*. pro. user afin que je puisse forcer une reconfigure par QtCreator. Cela m'a forcé ou laissez-moi sélectionner la version mise à jour de Qt. Avant cela, je pense qu'il essayait d'utiliser les anciennes versions de stuff. Donc, nettoyer toutes les références à l'ancien contenu de votre projet et sélectionner le nouveau est important.

0
répondu Wild Bill 2017-12-24 01:05:37

Méthode 1

Ce genre d'erreur apparaîtra chaque fois que vous mettez à niveau Xcode

Ainsi, vous pouvez supprimer le fichier cache dans qt avant de construire ou simplement supprimer lorsque vous obtenez l'erreur

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

Ou

rm {your project folder}/.qmake.stash

Si vous ne savez pas où trouver .qmake.stash, essayez

find ~ -name .qmake.stash

Méthode 2

Ne recommande pas parce que vous pourriez obtenir une erreur de construction lorsque vous utilisez 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
0
répondu Zam 2018-01-31 10:58:19