Программирование без IDE и изучение исходного кода огромного проекта на C++

Мне было интересно, в реальных проектах и ​​проектах с открытым исходным кодом они часто кодируют проект без IDE, используя собственный скрипт сборки, и они, вероятно, используют emacs или VIM, мне было интересно, как они часто проходят и ищут эти проекты для определенных функций и методы и т. д., они просто используют grep для поиска во всех файлах проекта, если они не понимают, откуда берется определенная директива или функция препроцессора? У них должен быть эффективный способ сделать весь этот поиск, кто-нибудь здесь знает? Лично использую Emacs, поэтому, если кто-нибудь может дать мне правильное направление для выполнения этих задач.


person George Host    schedule 23.10.2012    source источник


Ответы (5)


Для C/C++ могу порекомендовать использовать GNU Global (gtags) + CEDET. GTags обеспечивает лучшую (ИМХО) навигацию, чем CTags, а Semantic CEDET может использовать базы данных GTag для навигации и для функций поиска, где используется. Дополнительную информацию о настройке см. в моей статье о CEDET. (статья была написана для CEDET 1.1 и предыдущих версий. Для свежих версий (и для комплекта с GNU Emacs) вы можете использовать следующее конфигурация.)

Я лично использую эту настройку для работы с большими проектами C++ (несколько миллионов строк кода).

person Alex Ott    schedule 23.10.2012
comment
Никогда не слышал о глобальном. Спасибо. - person keltar; 23.10.2012
comment
Это то, что я искал спасибо. Также спасибо остальным ниже. Я понятия не имел, что существуют инструменты для статического анализа. Спасибо@! - person George Host; 23.10.2012

Взгляните на cscope и ctags. И в emacs-code-browser, в вашем случае.

person keltar    schedule 23.10.2012
comment
Я считаю, что это поможет, я видел, как несколько членов моей команды просто использовали терминал с vim и grep для просмотра своего кода, но я думаю, что это может сработать. - person George Host; 23.10.2012
comment
Ну, я тоже использую grep, но проекты не очень большие. Если бы каждый grep давал мне 15+ результатов - я думаю, что буду придерживаться ctags :-) - person keltar; 23.10.2012

http://www.scitools.com/ — хороший инструмент, но не бесплатный

person Community    schedule 23.10.2012
comment
Ну, это совсем другой вид программного обеспечения. Студия PVS тоже очень хороша, но все же - тут она не поможет. - person keltar; 23.10.2012

В случае среды, отличной от IDE, мне нравится: Source Navigator NG

Он больше для просмотра, но со своей задачей справляется хорошо.

person artapet    schedule 23.10.2012

С очень большим проектом, таким как исходный код Android, вы не можете легко использовать grep. Вместо этого я рекомендую beagrep. Это поисковая система (бигль) с поддержкой grep. Теперь я просто использую beagrep в каждом проекте, который читаю, независимо от того, большой он или маленький.

Проверьте это на исходный код grep 2G за 2 секунды.

person Bao Haojun    schedule 23.10.2012