osx-mavericks qt5

osx mavericks - Qt5 Condicionales de destino no encontrados



osx-mavericks (12)

Acabo de actualizar a la última versión de las herramientas de línea de comandos en OS X Mavericks y ahora al compilar mi código (que funcionaba anteriormente) arroja el siguiente error

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

¿Alguien sabe que si cambia esta línea

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

de sdk 8 a 9 funcionaría? Si es así, ¿dónde en los parámetros de Qt5 puedo cambiar esto?


Acabo de actualizar a XCode 9 y comencé a tener este problema en macOS Sierra (10.12). El problema es que Xcode movió el enlace simbólico predeterminado a 10.13. Arreglar:

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


Descubrí que el archivo ".qmake.cache" en mi raíz del proyecto tenía una referencia a Mac OS 10.8. La solución fue eliminar el archivo y crear el proyecto desde cero.


Es posible compilar el proyecto también agregando la siguiente línea al archivo .pro

QMAKE_MAC_SDK = macosx10.9


Estoy usando Qt5.8 en macosx10.13, resolví este problema editando el archivo /usr/local/Cellar/qt-legacy-formula/5.8.0_1/mkspecs/qdevice.pri agregando esta línea:

!host_build:QMAKE_MAC_SDK = macosx10.13


Instalé Qt 5.9.1 antes de instalar Xcode 10.13. Desde que actualicé el Xcode, el mensaje de error con la siguiente advertencia comenzó a aparecer.

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

Resolví el problema cambiando la siguiente línea

QMAKE_MAC_SDK = macosx

a

QMAKE_MAC_SDK = macosx10.13

en el siguiente archivo:

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

Espero que te sirva


Para Qt 5.8 y iOS build agregué un enlace simbólico a sdk en las carpetas de 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


Para mí, eliminar el contenido del directorio de salida solucionó el problema de forma manual (Qt 5.9, Xcode9, MacOS 10.12.6). Limpieza / Reconstrucción dejó algunas cosas corruptas.


Para referencia de otras personas, resolví el problema editando mi archivo mkspec de plataforma:

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

cambiar la siguiente línea:

!host_build:QMAKE_MAC_SDK = macosx10.8

a esto:

!host_build:QMAKE_MAC_SDK = macosx10.9

Asegúrese de limpiar su proyecto y ejecutar qmake nuevamente.

Nic.


Si compila en otras plataformas además de OS X, una mejora de la solución BRabbit27 sería:

macx { QMAKE_MAC_SDK = macosx10.9 }


Solo quería comentar sobre esto agregando mi experiencia. ¡Recientemente actualicé a High Sierra, XCode 9.2 y Qt5.10 y el mensaje de licencia de XCode me estaba volviendo loco!

En qdevice.pri cambié

QMAKE_MAC_SDK = macosx

a

QMAKE_MAC_SDK = macosz10.13

pero eso no era todo lo que necesitaba. Tuve que eliminar los archivos .qmake.stash y Makefile del directorio de compilación. No estoy seguro de que se necesite eliminar el Makefile, pero lo hice de todos modos. Luego eliminé los archivos * .pro.user para poder forzar una reconfiguración por QtCreator. Eso me forzó o me permitió seleccionar la versión actualizada de Qt. Antes de esto, creo que estaba tratando de usar las versiones anteriores de las cosas. Entonces, limpiar todas las referencias a las cosas viejas en su proyecto y seleccionar lo nuevo es importante.


Tuvo el mismo problema en Qt 5.5, MacOS 10.10.4. Eliminé .qmake.conf y .qmake.stash del directorio del proyecto.


Método 1

Este tipo de error aparecerá cada vez que actualice Xcode

para que pueda eliminar el archivo de caché en qt antes de compilar o simplemente eliminar cuando obtiene el error

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

o

rm {your project folder}/.qmake.stash

si no sabes dónde encontrar .qmake.stash , prueba

find ~ -name .qmake.stash

Método 2

No se recomienda porque puede obtener un error de compilación cuando utiliza la aplicación Xcdoe

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