вопрос о Preprocessor'е

Тема в разделе "LANGS.C", создана пользователем khv_test, 4 мар 2007.

  1. khv_test

    khv_test New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    135
    всем известный cl.exe (Microsoft (R) 32-bit C/C++ Optimizing Compiler Version)
    c помощью опций /E /EP /P создает обработанный препроцессором файлик c расширением *.i,
    который включает все, что было определено в #include.
    -PREPROCESSOR-
    /E preprocess to stdout
    /EP preprocess to stdout, no #line
    /P preprocess to file

    Так вот,этот файлик содержит много лишней,неиспользуемой инфы, как бы сделать так, чтоб выводил
    ТОЛЬКО те структуры,функции,типы, которые реально ИСПОЛЬЗУЮТСЯ в данном коде.
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    препроцессор тупой-тупой, он просто заменяет все свои директивы и все. никакого анализа кода он не производит.
     
  3. khv_test

    khv_test New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    135
    т.е. типа ниче не сделаешь...?!

    я нашел 1 способ: делаешь pdb и потом pdbdump чтоб все вытаскиваешь но это криво как то...
     
  4. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    khv_test

    Попробую выразить мысль "препроцессор тупой-тупой" более конкретно :) На уровне препроцессинга не известно, что используется, а что нет. С точки зрения логики пайплайна это и не должно быть известно - на то он и препроцессор.
     
  5. khv_test

    khv_test New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    135
    2 ответа 0 полезных...
     
  6. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Фигасе! Два Правильных и Полных ответа! А если ты сам понаписывал даже и ОДИН файл, в котором во множестве
    - ты знаешь, как с помощью компилятора получить те из них, которые
    ? Это тебе стандартные способы не помогут, надо брать какие-нибудь анализеры :dntknw: или самому таковые сочинять :)
     
  7. khv_test

    khv_test New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    135
    еслиб знал хоть один не спрашивал бы тут....
    а ответы нульинформативные.
     
  8. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Такое даже компилятор не может делать, этим занимается линкер. Так что проще использовать готовое - pdb.
     
  9. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    khv_test

    Дело в том, что ты хочешь пойти путем, которым никто не ходит. Разбивай на разные инклюдники. То, что ты хочешь - бред, этим никто не занимается. Если тебя смущает скорость компиляции - юзай precompiled headers.
     
  10. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    khv_test
    если вам не нравятся правильные ответы, это уже не сюда. уже сказали, что заставить препроцессор сделать такое невозможно.