Подтвердить что ты не робот

Qt5 Целевые условные обозначения не найдены

Я только что обновил до последней версии инструментов командной строки в 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 я могу изменить это?

4b9b3361

Ответ 1

Можно также скомпилировать проект, добавив следующую строку в файл .pro

QMAKE_MAC_SDK = macosx10.9

Ответ 2

Для справки других людей я решил проблему, отредактировав файл 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.

Ответ 3

Если вы компилируете на других платформах, чем OS X, улучшение решения BRabbit27 будет:

macx {
QMAKE_MAC_SDK = macosx10.9
}

Ответ 4

Была та же проблема в Qt 5.5, MacOS 10.10.4. Я удалил .qmake.conf и .qmake.stash из каталога проекта.

Ответ 5

Я просто обновился до 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

Ответ 6

Я узнал, что файл ".qmake.cache" в корне моего проекта имеет ссылку на Mac OS 10.8. Решение заключалось в том, чтобы удалить файл и построить проект с нуля.

Ответ 7

Я установил Qt 5.9.1 перед установкой Xcode 10.13. Поскольку я обновил 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

Я надеюсь, что это сработает для вас.

Ответ 8

Для сборки Qt 5.8 и iOS я добавил символическую ссылку на sdk в папках 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

Ответ 9

Для меня удаление содержимого выходного каталога вручную исправило проблему (Qt 5.9, Xcode9, MacOS 10.12.6). Уборка/Восстановление действительно оставили некоторые коррумпированные вещи.

Ответ 10

Я использую Qt5.8 на macosx10.13, я решил эту проблему, отредактировав файл /usr/local/Cellar/qt -legacy-formula/5.8.0_1/mkspecs/qdevice.pri, добавив эту строку:

!host_build:QMAKE_MAC_SDK = macosx10.13

Ответ 11

Я просто хотел прокомментировать это, добавив свой опыт. Недавно я обновился до High Sierra, XCode 9.2 и Qt5.10, и лицензионное сообщение XCode привело меня в смятение!

В qdevice.pri я изменил

QMAKE_MAC_SDK = macosx

to

QMAKE_MAC_SDK = macosz10.13

но это было не все, что мне было нужно. Мне пришлось удалить файлы .qmake.stash и Makefile из каталога сборки. Я не уверен, что удаление Makefile было необходимо, но я все равно это сделал. Затем я удалил файлы *.pro.user, чтобы я мог заставить перенастроить QtCreator. Это заставило меня или позволить мне выбрать обновленную версию Qt. До этого я думаю, что он пытался использовать старые версии вещей. Таким образом, очистка всех ссылок на старый материал в вашем проекте и выбор нового важны.