Ошибка Dlib: ошибка C1083: не удается открыть включаемый файл: 'type_safe_union/type_safe_union_kernel.h'

Я хотел бы использовать пакет обработки изображений Dlib (библиотека C++) в Visual Studio 2013.

Я создал пустой проект и добавил "dlib-18.16\dlib\all\source.cpp" в свои исходные файлы в обозревателе решений. Затем я добавил путь к dlib-18.16 в мои включаемые каталоги в каталогах VC++, а также добавил путь к dlib-18.16\dlib в мои дополнительные включаемые каталоги в C/C++ General Visual Studio.

Я могу запустить файл matrix_ex.cpp, который является одним из примеров Dlib, но я не могу запустить файл face_detection_ex.cpp из-за ошибки «Не удается открыть включаемый файл: 'type_safe_union/type_safe_union_kernel.h'», которая на самом деле вызвана по строке #include <dlib/image_processing/frontal_face_detector.h>

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


person user3504976    schedule 14.08.2015    source источник


Ответы (1)


Вам нужно добавить саму папку dlib в каталоги Include в каталогах VC++, вместо этого вы добавили папку над ней.

В расширении это будет означать, что ваша директива включения должна быть #include <image_processing/frontal_face_detector.h>.

Позвольте мне привести гипотетический пример, чтобы лучше объяснить. Вы скачали dlib-18.16.tar.bz2 и распаковали его в c:\projects. Это создает папку с именем c:\projects\dlib-18.16. В каталогах VC++ вы добавили c:\projects\dlib-18.16 в каталоги Include.

Однако это неверно, вы должны удалить этот каталог и вместо него добавить c:\projects\dlib-18.16\dlib, так как это включаемый каталог для проекта.

Это приведет к тому, что #include <type_safe_union/type_safe_union_kernel.h> загрузит C:\projects\dlib-18.16\dlib\type_safe_union\type_safe_union_kernel.h, а также аналогичные внутренние ссылки между файлами.

person Guvante    schedule 14.08.2015
comment
Я так сделал и стало хуже. Теперь он также не может найти ` #include ‹matrix.h› ` или ` #include ‹matrix/matrix.h› `. - person user3504976; 14.08.2015
comment
@user3504976: user3504976: расширен за счет включения реальных папок, чтобы пояснить, что я имел в виду. - person Guvante; 14.08.2015
comment
Ваше предложение имеет смысл, и я следовал вашим инструкциям, но оно не работает. Вероятно, ошибка вызвана чем-то другим. Является ли добавление ...\dlib-18.16\dlib для включения каталога единственным необходимым шагом для использования Dlib в Visual Studio? - person user3504976; 14.08.2015
comment
@ user3504976: Попробуйте добавить абсолютный путь. - person Guvante; 14.08.2015