2012-11-13 2 views
4

У меня есть визуальное студийное решение myvs.sln по следующему пути: c:\dir1\dir2\dir3\myvs\myvs\myvs.sln. У меня есть версия для версии xxx, установленная в c:\dir1\dir2\dir3\boostxxx\.visual studio 2010 включает пути к каталогам

У меня есть в проекте-> properties-> c/C++ -> general: ../..;../../boostxxx. Внутри расширенных библиотек включенные файлы имеют следующий синтаксис: #include <boost/smart_ptr/shared_ptr>.

Мой файл myfile.h находится в c:\dir1\dir2\dir3\yy1\myfile.h. В myfile.h я включаю библиотеки boost как: #include <boost/shared_ptr.hpp>. Я получаю сообщение об ошибке: c:\dir1\dir2\dir3\yyy1/myfile.h fatal error C1083 cannot open include file boost/shared_ptr.hpp.

Вопрос в том, что я должен сделать, чтобы исправить это?

Я также замечаю, что выход ошибки компилятора имеет «\» до dir3, а затем изменяется на «/».

Скорее всего, я не понимаю, как работает относительный путь. Также обратите внимание, что я хочу ссылаться только на относительный путь, а не на абсолютные пути. Кто-то может помочь? Я в платформе окон с помощью C++ Visual Studio 2010.

+0

В: У вас есть (все!) Заголовки заголовков в вашей Visual Studio «включить» список? Разделяются ли они «;»? – paulsm4

+0

Нет, у меня есть только базовый каталог, где я установил boost, который только: ../../boostxxx. в списке включенных путей – user1612986

ответ

3

относительных пути в пути поиска относится к директории файла с #include директивы текущий каталогом компилятора, некоторые простые тестировании теперь показывают.

«.. \ ..» поднимается на два уровня от вашего файла заголовка текущего каталога компилятора, а не из каталога вашего проекта.

Чтобы это исправить, явно начать ваш включают пути в вашей визуальной директории проекта студии, следующим образом (в буквальном смысле):

$ (ProjectDir) .. \ ..; $ (ProjectDir) .. \. . \ BoostXXX

Относительно вперед по сравнению с обратной косой черты, используйте косую черту в вашей C++ #include директивы кодекса, потому что это самый портативный.

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