Платформа Xcode больше не найдена после второй сборки - PullRequest
5 голосов
/ 02 ноября 2019

Поскольку я обновлял до Xcode 11, каждый новый проект, который я запускаю и который включает в себя фреймворк, больше не может быть скомпилирован после второй сборки проекта.

Например, включение SDL2 с использованием этой команды:

#include <SDL2/SDL.h> 

приведет к этой ошибке:

'SDL2/SDL.h' file not found

после второй компиляции проекта.

Проекты, созданные в Xcode 10, нормально работают в Xcode 11. Я попытался изменить параметры встраивания фреймворков, но настройки не работают. Эта ошибка возникает во всех версиях Xcode 11 (0 - 2.1). Я использую macOS версии 10.14.6.

Почему это происходит или как это можно исправить?

1 Ответ

0 голосов
/ 11 ноября 2019

SDL2 не является основой. Скорее это либо статическая, либо динамическая библиотека. Если, конечно, вы не используете какой-то другой пользовательский каркас для SDL2.

Есть два сценария, с которыми вы обычно сталкиваетесь:

  1. SDL2, установленный в расположении по умолчанию, например / usr / local
  2. SDL2 установлен в пользовательском месте (как я это делаю)

Я предполагаю, что вы делаете первое. Если это так, то возможно, что с Xcode 11 путь поиска системного заголовка по умолчанию каким-то образом изменился и не включает / usr / local (или где вы его установили).

Чтобы это исправить, вы должны сначала найти свою библиотеку SDL2. В частности, для файлов включения.

Затем в Настройках сборки перейдите к разделу Пути поиска: Пути поиска по заголовкам системы и введите этот путь в.

Build Settings

Имейте в виду, что #include использует SDL2 как часть пути, поэтому вы не хотите помещать часть SDL2 в путь. Вот пример моей структуры каталогов. Так что мой путь записи для этого $(PROJECT_DIR)/3rdParty/SDL2/include. Вы можете видеть в моем каталоге проектов, у меня есть каталог 3rdParty, который я использую для хранения сторонних библиотек, которые я интегрирую в проект.

Example directory structure

Выдля включения используются угловые скобки, в которых используется системный путь.

Обратите внимание, что вам также может потребоваться обновить способ связи с SDL2 (т. е. он не сможет его найти).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...