LINUX.ORG.RU

Исключение неиспользуемых директив препроцессора из кода

 ,


3

4

Есть большой проект, естественно собирается он под многие платформы. Не буду таить - это conky. Моя лаба - упростить его донельзя и оставить только часть которая компилируется под линукс, без графики (не спрашивайте зачем, современные учебные планы не отвечают на такой вопрос, мне главное сделать и сдать).

Естественно, неплохую часть кода там составляют макросы #ifdef для разных платформ, посему есть такой вопрос: удалять вручную и разбираться довольно муторно, однако возникла идея - если препроцессор обрабатывает код, он сам детектит в процессе, какие переменные определены - можно ли каким-то образом заставить его вернуть чистый код, с теми переменными и условиями, которые реально имеют ценность после компиляции? Я понимаю как он работает, код прошарил, но было бы проще, если бы 90% макросов не было

У меня есть стойкое ощущение, что придётся тебе поработать препроцессором =) Ещё можно какой-нибудь libclang заюзать и написать чудо-тулзу, но проще ручками. Если есть более знающие люди, то было бы интересно почитать, подпишусь на тред.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от utf8nowhere

И двух минут не прошло, не зря подписался) Не знал про эту тулзу, спасибо.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от DELIRIUM

Так я и не на твой комментарий ответил :D Еще нагуглилась утилита coan и флаг -E у компилятора, но он выводит еще больше жести

Gunburgender
() автор топика
Ответ на: комментарий от EXL

А чем он отличается от unifdef? В интернетах несколько лет назад писали, что unifdef заброшен, а sunifdef развивается, но сейчас выглядит наоборот (есть ещё coan, но у него ситуация всё ещё выглядит печальнее, чем у unifdef, у которого, надо признать, тоже 0 коммитов за последние полтора года)

Softwayer ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.