Сделать имя библиотеки частью пути включения в make?

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

#include <foo/bar.hpp>

// code defining bar methods here

Например, при форсировании включаются другие заголовки внутри форсирования, например, <boost/shared_ptr.hpp>, а не относительный цитируемый "../shared_ptr.hpp" стиль. Я посмотрел на то, как некоторые другие библиотеки достигают этого, и кажется, что они добавляют избыточный каталог к ​​своей структуре файлов, например, для этого. код повышения живет в «boost_1_4_1 / boost», а не просто «boost_1_4_1 /».

Переход на эту схему раздражает, если у вас уже есть управление исходным кодом с использованием существующего макета. Как лучше всего использовать GNU make для создания слоя? Моя единственная мысль — добавить цель, от которой зависят все цели сборки, которая создает скрытую папку с символической ссылкой внутри моего исходного дерева, и добавить эту скрытую папку в путь включения. Возможно, есть менее запутанный способ?

0

Решение

Не могли бы вы использовать ключ -I gcc опции INC для вашего Makefile?

НКА:

gcc -c -I / home / joseph / dev / foo / headers

Makefile:

INC=-I/home/joseph/dev/foo/headers

В этом случае у вас будет только одно место, чтобы сделать это изменение, Makefile.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]