Проект Eclipse CDT для кодовой базы со многими двоичными файлами? - PullRequest
1 голос
/ 29 октября 2019

В моей организации имеется большая кодовая база C / C ++. Мы строим много двоичных файлов из подмножеств этой кодовой базы, как рабочих, так и тестовых двоичных файлов. Есть много вариантов сборки. Одни и те же исходные файлы C / C ++ компилируются с разными флагами компилятора -I и -D в разных двоичных файлах. Пример: двоичный файл "test1" может скомпилировать файл "file.c" с одним набором флагов -I и -D, а "test2" скомпилирует тот же файл с другими флагами.

Как настроить Eclipse CDTпроект для такой кодовой базы?

Мы попробовали два подхода, которые оба были довольно неудачными:

  1. Создать один проект для каждого двоичного файла с его -I и -Dflags.

  2. Создайте один проект с объединением всех -I и -D из всех двоичных файлов.

1 Ответ

0 голосов
/ 01 ноября 2019

Исходя из описанных вами требований, я думаю, что лучше всего подойдет CDT Build Output Parser . Я написал объяснение того, как использовать его в этом предыдущем ответе .

По сути, анализатор выходных данных сборки вызывает ваш скрипт сборки и анализирует его выходные данные, чтобы вывести правильные настройки (-I и-D flags) для каждого исходного файла.

Примечание по анализу файла в нескольких конфигурациях: CDT поддерживает это для заголовочных файлов , но не для исходных файлов без заголовков (таких как .c файлов). Итак, если у вас есть заголовочный файл header.h, который имеет несколько #ifdef с и включен в два разных исходных файла file1.c и file2.c с разными макросами, определенными в точке включения - тогда вы можете открыть header.h из #include в file1.c и получите правильное представление "header.h в комплекте с file1.c", с правильными частями, выделенными серым цветом, и все. Однако, если file1.c сам скомпилирован в двух разных режимах, я подозреваю, что анализатор сборки сборки просто выберет один из них, и вы застряли, просматривая его в этом режиме.

...