XCode не может найти заголовки OpenSSL в /usr / include

Я пытаюсь использовать стандартные системные заголовочные файлы в моем проекте 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 ответов


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

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


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

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


мне удалось избежать необходимости указывать пути на includes просто обязательно выберите создать группы для любых добавленных папок на папки опция в диалоговом окне Добавить файлы в проект который появляется, когда вы добавляете файлы.

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