![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Здравствуйте.
Интересует инструмент, позволяющий делать сабж. Собственно часто бывает, что включаешь какой-нить h-ник либо для отладки, либо сначала попользовал какой-нить класс, а затем передумал (провёл рефакторинг), а затем забываешь его убрать. Понятно дело, что можно повелосипедировать - написать скриптик, который будет по-одной удалять строку с #include, вызывать компилятор, смотреть ошибки... Но хочется готового, отлаженного. Если кто-нибудь знает такой плагин в M$VS - ещё лучше. Спасибо. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
недавно интересовался таким инструментом для линукс. но увы, ничего не нашел.
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Вот здесь что-то на питоне
http://www.catb.org/esr/deheader/ не знаю что за зверь, только что нашел. (похоже заточена под gcc) если под виндами переименовать файл из архива "deheader" в "deheader".py", то он даже запускается deheader.py --help помощь. дальше пока не копал. |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
volatile, спасибо. Интересный скриптик. Меня только смущает гора "известных" функций и соответствующих им инклюдов в начале... зачем?
Попробую в понедельник. Я даже подключу его в студию - делал недавно разбор vcproj-файла... Если интересует - могу выложить результат сюда -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
borisbn, ох рано спасибо сказали.
имхо это вообще не для венды... не знаю, возможно вам удастся... |
|||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
Как делали? Через XML-схему или "руками" в скрипте ? |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Первое. При помощи питоновского же xml.dom.minidom. Делал обёртку над cppchecker'ом (сорри Карпов). Он (cppchecker) умеет обрабатывать либо отдельный файл либо каталог, а в проекте на студии файлы могут быть где угодно. Я увидел там только модуль commands, который только под линукс, но это - мелочь. Заменю на какой-нить spawn. Я собирался сам писать такое на питоне, а тут куча работы сделано. осталась мелочь. Поэтому с не согласен -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
borisbn, ок.
Если будут результаты, то да, интересует, спасибо. Я этот скрипт тоже, еще возможно покапаю... Вообще проблема с лишними инклудами была и есть, но никогда не задумывался над возможностью автоматического решения, так что вам тоже спасибо за идею. |
|||
|
||||
| volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Я чуток подредактировал скрипт. в принципе только функцию testcompile:
Ну и наверху добавил import subprocess После этого он даже начал фурыкать. Выдает не только что можно удалить, но также советует кое-что добавить из хидеров, для портабельности, например:
Теперь надо бы его как-то удобней вставлять в проект. А то пришлось на скорую руку мейк файл делать,и запускать так: deheader.py -m nmake Возможно вы чтонибудь получше придумаете... |
||||
|
|||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
а нету ли такого инструмента:
например мне нужно из какого-либо кода выцепить пару функций( т.к. я не хочу использовать весь код) программа должна определить, что "потащут" за собой данные функции и выделить всё это в отдельные .h и .cpp. Это сообщение отредактировал(а) mrgloom - 4.6.2012, 13:25 |
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
mrgloom, вроде как в креаторе 2.5.0 есть нечто похожее, только он не тянет код, а сам вставляет нужные h-ники
Я, кстати, разочаровался в этом скрипте... 1) Он у меня периодически вылетает
причём последняя строчка именно такая. Если расшифровать получается "Невозможно создать файл" 2) Он мне советует для совместимости вставить <sys/socket.h>, увидев Qt-шный connect 3) Сама идея, похоже, неправильная: если я включаю какой-то h-ник, в котором включен например <string>, а у себя в коде я везде использую std::string, то я должен включить <string> в cpp-шнике, а мне советуют его убрать. Вопрос mrgloom навёл на мысль - если в креаторе эта фича нормально работает, то можно спокойно удалять все инклюды, и сказать креатору, чтоб он вставил все нужные. Всем спасибо. P.S. Я успел немного поковырять скриптик, но т.к. решил бросить, а обещал чем-нить поделиться, то вот наработки по распарсиванию *.vcproj
Это сообщение отредактировал(а) borisbn - 4.6.2012, 13:43 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
собственно говоря это(в креаторе) работает для всех случаев? а то мне кажется, что когда начинаются всякие макросы\темплейты и прочее всё становится не так очевидно.
Это сообщение отредактировал(а) mrgloom - 5.6.2012, 08:57 |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
что это ? Если ты про креатор, то я, честно говоря, в глаза 2.5.0 не видел. Только читал по-диагонали про него -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |