Как вам уже сказали, полезно прочитать руководство - особенно в этой главе - и даже более конкретно прямо здесь .
В частности, вы хотите
g++ -I/root/workingdirectory -I/root/workingdirectory2
Обратите внимание также на документацию по синтаксису директив #include
, описанную здесь здесь как:
2.1 Включить синтаксис
Оба файла заголовка пользователя и системы включены с помощью директивы предварительной обработки
#include
. Он имеет два варианта:#include
Этот вариант используется для файлов системных заголовков. Он ищет файл с именем file в стандартном списке системных каталогов. Вы можете добавить каталоги в этот список с опцией -I (см. Invocation).
#include "file"
Этот вариант используется для файлов заголовков вашей собственной программы. Он ищет файл с именем file сначала в каталоге, содержащем текущий файл, затем в каталогах цитат, а затем в тех же каталогах, что и для
. Вы можете добавить каталоги в список каталогов котировок с опцией -iquote. Аргумент
#include
, ограниченный кавычками или угловыми скобками, ведет себя как строковая константа в том, что комментарии не распознаются, а имена макросов не расширены. Таким образом,#include
указывает включение системного заголовочного файла с именем x / * y.Однако, если обратные слэши происходят внутри файла, они считаются обычными текстовыми символами, а не escape-символами. Обработаны ни одна из управляющих последовательностей символов, соответствующих строковым константам в C. Таким образом,
#include "x\n\\y"
указывает имя файла, содержащего три обратной косой черты. (Некоторые системы интерпретируют\
как разделитель пути. Все это также интерпретирует/
одинаково. Наиболее переносимо использовать только/
.)Это ошибка, если есть (кроме комментариев) в строке после имени файла.
blockquote>Так, например,
#include "first.h"
запустит , глядя в тот же каталог, что и файл .cpp, содержащий эту директиву (или относительный путь относительно этого каталога).
Если вы хотите использовать путь include (указанный в
-I
), вы должны использовать#include
Обычная практика заключается в использовании формы
#include "local.h"
для заголовков внутри библиотеки / пакета / модуля (однако вы решили организовать это), а форма#include
для заголовков из внешние / сторонние или системные библиотеки.
Возьмите это (кредиты @BigBen):
Activecell.Replace "~*", "_"