XCode не может найти заголовки OpenSSL в / usr / include - PullRequest
9 голосов
/ 07 мая 2010

Я пытаюсь использовать стандартные системные заголовочные файлы в моем проекте C ++ XCode:

#include <openssl/bio.h>
#include <openssl/ssl.h>
#include <openssl/err.h>

Сборка не удалась и она жалуется:

"Openssl/bio.h: No such file or directory"

Я добавил / usr / include в «Пути поиска по заголовкам» в настройках проекта, но это не исправило.

Я могу это исправить, добавив весь путь как:

#include </usr/include/openssl/bio.h>

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

Другой способ исправить это - упомянуть другой поток, который заключается в добавлении / usr / include к Пользователь Пути поиска заголовка. Но если я сделаю это, то мне придется изменить все угловые скобки <> на кавычки "", что опять-таки похоже на взлом. Я имею в виду, что это стандартные системные заголовочные файлы, поэтому я считаю, что это должно быть что-то простое, не требующее такого рода хаков.

Есть идеи?

Спасибо!

Ответы [ 3 ]

14 голосов
/ 07 мая 2010

Xcode использует выбранный в настоящее время SDK в качестве базового пути, который он добавляет к системе. Таким образом, если ваш SDK /Developer/SDKs/MacOSX10.6.sdk, он будет выглядеть по умолчанию /Developer/SDKs/MacOSX10.6.sdk/usr/include для системных включений.

Существуют различные возможные обходные пути - я бы, вероятно, просто поместил символическую ссылку в /Developer/SDKs/MacOSX10.6.sdk/usr/include, указывающую на /usr/include/openssl, но вы, вероятно, можете думать о других сейчас, когда вы знаете основную проблему.

1 голос
/ 07 мая 2010

Это может зависеть от того факта, что HFS (+) не учитывает регистр. Сообщение об ошибке говорит об «Openssl / bio.h» с заглавной «O», но вы указываете «openssl / bio.h» в include и путь с / usr / include works.

Я подозреваю, что в вашем пути включения есть какой-то каталог "Openssl" (заглавная "O"), который используется при поиске "openssl / bio.h". Этого не произошло бы, если бы HFS (+) с самого начала чувствительна к регистру (я знаю, что возможно иметь регистрозависимый, но на самом деле это PITA для использования ...)

0 голосов
/ 04 февраля 2012

Мне удалось избежать необходимости указывать пути для включений, просто , выбрав Создать группы для любых добавленных папок для опции Папки в Добавить Files to Project диалоговое окно , которое появляется при добавлении файлов.

С другой опцией, Создать ссылку на папку для любых добавленных папок, я должен вручную указать ее на файл по полному пути (и значки папок отображаются синим цветом вместо обычного бежевого). Интересно, что даже в этом случае AutoComplete видит файл, но XCode жалуется, что не может его найти.

...