Как управлять выходными каталогами и файлами, которые очищаются при использовании MPC? - PullRequest
1 голос
/ 15 мая 2011

Я экспериментирую с OpenDDS (и ACE / TAO), который использует MPC (Make Project Creator) для генерации реальных файлов make, и это делает пару действительно раздражающих вещей.

Во-первых, он генерирует много промежуточных исходных файлов (некоторые IDL и заголовки / реализации c ++) и помещает их в один каталог с файлами IDL и C ++, созданными вручную. Я хотел бы, чтобы созданные вручную файлы и созданные файлы находились в отдельных каталогах, потому что все созданные файлы отвлекают. Есть ли способ сделать это?

Во-вторых, заставьте меня запустить «make clean», он очищает сгенерированные объектные файлы, но не очищает сгенерированные исходные файлы. Есть ли способ заставить его очистить все сгенерированные файлы?

1 Ответ

2 голосов
/ 16 июня 2011

Чтобы удалить все сгенерированные файлы (при использовании make files), просто сделайте 'make realclean'. make make просто очищает продукты компиляции C ++ (объектные файлы, библиотеки и исполняемые файлы), а make realclean удаляет все сгенерированные файлы.

Изменение выходного каталога для сгенерированных файлов, вероятно, не то, что вы действительно хотите сделать. Да, большое количество сгенерированных IDL и C ++ иногда мешает, но через некоторое время вы учитесь смотреть сквозь них. Если вы не уверены в этом, одним из косвенных способов является использование скрипта clone_build_tree.pl, который поставляется с MPC. Этот скрипт создает новый каталог (в build / xxx), который содержит символические ссылки на все исходные файлы. Затем вы делаете свою сборку там, оставляя исходные исходные каталоги нетронутыми. Вот упрощенный пример (предполагается, что ACE, TAO и MPC уже настроены):

  1. CD DDS
  2. $ MPC_ROOT / clone_build_tree.pl test
  3. CD build / test
  4. export DDS_ROOT = `pwd`
  5. сборка с использованием обычных инструкций Open DDS ...
...