Существует ли директива прагмы для включаемых каталогов? - PullRequest
7 голосов
/ 15 августа 2011

Как видно из заголовка: существует ли директива прагмы для включаемых каталогов, использующих VS20 ** C ++?Я думаю о чем-то вроде:

#pragma comment(include, "..\externals\blah\includes\")

Так что я могу использовать include в этом стиле, и blah.h также может использовать этот стиль внутри?

#include <blah.h>

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

С уважением, Nem

Ответы [ 4 ]

5 голосов
/ 23 июля 2013

вы можете создать текстовый файл (например, IncludeDirs.txt). Внутри этого файла вы можете добавить включаемые папки:

/I "."
/I ".."
/I ".\OtherFolder"

затем в свойства-> свойства конфигурации-> C / C ++ -> Командная строка добавьте следующую строку:

@includedirs.txt

Вы можете создать разные файлы для каждого профиля (Отладка, Выпуск и т. Д.)

2 голосов
/ 15 августа 2011

Я не думаю, что есть способ сделать это. include_alias полезен только для каждого файла отдельно.

0 голосов
/ 16 августа 2011

Вы можете добавить «главную папку» в свойства вашего проекта, а затем поместить нужную папку в директиву include, например:

папка «включает в себя» с подпапками "Unicode" / "ASCII" , оба с заголовочным файлом с именем "String.h" (не следует использовать одно и то же имя)

при использовании кода:

#ifdef UNICODE // or your preprocessor flag
#  include <Unicode/string.h>
#else 
#  include <ASCII/string.h>
#endif

вы также можете использовать DEBUG или любое ключевое слово, если вы укажете его в Project-Settings --> C/C++ --> Preprocessor --> Preprocessor defintions

0 голосов
/ 15 августа 2011

Я не знаю ни одного.

Некоторое время назад я решил эту проблему, создав файлы "all" и "all.cpp" в каждом каталоге, чтобы включить в него каждый заголовок и исходный файл.Для создания и поддержки требуется ручная работа, но я считаю, что это того стоит.Таким образом, я могу написать что-то вроде #include <Frigo/Math/all>.Может быть даже возможно создать скрипт, который обновляет их автоматически.

...