|
|
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Я новичок в C++ програмировании - перехожу с других технологий, и возникло несколько вопросов не о языке а скорее об окружении разработчика, ответов на которые я пока не могу найти. 1. Build Tool Чем пользоваться для сборки программ? На сколько я понимаю вариантов очень и очень много, и я никак не могу понять какие из них хорошие а какие нет. Autotools + make? Cmake? Интересует возможность сборки как под Linux так и под Win32, а также желательна интеграция с IDE (см. ниже). 2. IDE Посоветуйте пожалуйста IDE под Linux - я пробовал KDevelop и Eclipse CDT. Эклипс немного подтормаживает; KDevelop впринципе всем устраивает, хотя например он не подцепил WxWidgets и не выводит соответствующие метожы в Code Completion. Делал все по инструкции, но видимо где-то напортачил - опыта мало. От IDE не нужно дизайнеров форм, визардов и всего остального. Хочется просто удобной навигации по коду и желательно простейшей автоматизации рефакторинга. 3. Book Advice Есть ли книга в которой есть глава об оргранизации структуры программы ввиде нескольких модулей (cpp/h файлов). Как правильно ставить зависимости? Best Practices? 4. Unit Testing CppUnit - правильный выбор? Заранее спасибо всем ответившим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 15:33:56 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
МолекулярныйДинамик wrote: > 1. Build Tool > Чем пользоваться для сборки программ? На сколько я понимаю вариантов > очень и очень много, и я никак не могу понять какие из них хорошие а > какие нет. Autotools + make? Cmake? Интересует возможность сборки как > под Linux так и под Win32, а также желательна интеграция с IDE (см. > ниже). Они все хорошие. Если вкратце: GNU make - в любом случае понадобиться (если не будешь юзать VCExpress 2005, но тогда забудь про компиляцию под др. платформы). Его в любом случае нужно будет изучить хотя бы базово. Далее идут "обертки" над ним: 1) autotools (ищи в сети autotools tutorial и autobook) - прогоняет на основе созданных тобой файлов кучу макросов, и создает линуксовский ./configure, который после запуска прогоняет ряд тестов (опять же, тобой прописанных, они основаны на m4 макросах) и создает специфичный для ОС Makefile (для Gnu make) и config.h, в котором #define'ами оперделено, чего на операционной системе есть, а чего нет. (т.е. за счет препроцессора обеспечиваем портабельность). Эта штука заточена под портирование приложений, поковырять её стоит. Но она не самая удобная. 2) scons (в поиск. www.scons.org, вроде бы). Python - обретка над GNU Make. Удобней, чем autotools (ИМХО. После 3го приложения под autotools надоело выполнять короткий танце с бубном по созданию configure.ac, Makefile.am, копированию файлов, вызов autoscan, auotheader, aclocal, automake, autoconf), у него более компактный синтаксис, но желательно знать питон хотя бы чуть-чуть. scons удобней для того, чтобы быстро начать проект, но с "удобной портабельностью", как я понял, у него чуток по хуже, хотя он гибче и мощней, чем autotools. Ещё он требует python для работы (ну, и, само собой, g++/gcc под линукс и какой-нибудь другой компилятор под виндой). > > 2. IDE > Посоветуйте пожалуйста IDE под Linux - я пробовал KDevelop и Eclipse > CDT. Эклипс немного подтормаживает; KDevelop впринципе всем > устраивает, хотя например он не подцепил WxWidgets и не выводит > соответствующие метожы в Code Completion. Делал все по инструкции, но > видимо где-то напортачил - опыта мало. Я пользуюсь kate (это не IDE, это текстовый редактор), на поиск IDE забил, так как каждая с выкрутасом. Более-менее удачная - MS Visual Studio, но "халявный эдишн" под Windows очень крив и неудобен. Да, и она удобней в лпане работы, но в плане построения билдов, ИМХО, лучше все-таки autotools/scons/GNU make. Рекомендую на IDE забить и взять любой редактор с подсветкой синтаксиса (например, Far Manager с плагином colorer), так как если работать без автокомпилта и прочей ерунды - это намного для мозгов полезней. Сначала тормоза, потом работа разгоняется больше, чем под IDE. > 3. Book Advice > Есть ли книга в которой есть глава об оргранизации структуры программы > ввиде нескольких модулей (cpp/h файлов). Как правильно ставить > зависимости? Best Practices? ИМХО, так как тебе удобней работать. Можешь посмотреть Qt 4 за примером неплохого C++ кода. > 4. Unit Testing > CppUnit - правильный выбор? Для чего? -- We are all going to hell and I'm driving the bus Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 17:21:32 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
МолекулярныйДинамикЗдравствуйте, Я новичок в C++ програмировании - перехожу с других технологий, и возникло несколько вопросов не о языке а скорее об окружении разработчика, ответов на которые я пока не могу найти. 1. Build Tool Чем пользоваться для сборки программ? На сколько я понимаю вариантов очень и очень много, и я никак не могу понять какие из них хорошие а какие нет. Autotools + make? Cmake? Интересует возможность сборки как под Linux так и под Win32, а также желательна интеграция с IDE (см. ниже). [/quote] Учи gmake. Все остальное от лукавого МолекулярныйДинамик 2. IDE Посоветуйте пожалуйста IDE под Linux - я пробовал KDevelop и Eclipse CDT. Эклипс немного подтормаживает; KDevelop впринципе всем устраивает, хотя например он не подцепил WxWidgets и не выводит соответствующие метожы в Code Completion. Делал все по инструкции, но видимо где-то напортачил - опыта мало. От IDE не нужно дизайнеров форм, визардов и всего остального. Хочется просто удобной навигации по коду и желательно простейшей автоматизации рефакторинга. Текстовый редактор с подсветкой и возможностьюзапуска командны shell. Можно vim, mc, nedit .. Об IDE лучше и не вспоминать это от лукавого МолекулярныйДинамик 3. Book Advice Есть ли книга в которой есть глава об оргранизации структуры программы ввиде нескольких модулей (cpp/h файлов). Как правильно ставить зависимости? Best Practices? Берешь Лафоре и читаешь гл 13 МолекулярныйДинамик 4. Unit Testing CppUnit - правильный выбор? А другого нет Заранее спасибо всем ответившим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 17:28:55 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
2. Остановливайтесь на KDevelop - это настройка над штатными средствами разработки, чем и хороша. 1. KDevelop поддерживает CMake поэтому и с выбором Build системы тоже вроде определились. 4. Cppunit, пожалуй, то что нужно. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 18:03:15 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
ErV МолекулярныйДинамик wrote: > 1. Build Tool > Чем пользоваться для сборки программ? Они все хорошие. Если вкратце: GNU make - в любом случае понадобиться (если не будешь юзать VCExpress 2005, но тогда забудь про компиляцию под др. платформы). Его в любом случае нужно будет изучить хотя бы базово. Далее идут "обертки" над ним: 1) autotools (ищи в сети autotools tutorial и autobook) - прогоняет на основе созданных тобой файлов кучу макросов, и создает линуксовский ./configure, который после запуска прогоняет ряд тестов (опять же, тобой прописанных, они основаны на m4 макросах) и создает специфичный для ОС Makefile (для Gnu make) и config.h, в котором #define'ами оперделено, чего на операционной системе есть, а чего нет. (т.е. за счет препроцессора обеспечиваем портабельность). Эта штука заточена под портирование приложений, поковырять её стоит. Но она не самая удобная. 2) scons (в поиск. www.scons.org, вроде бы). Python - обретка над GNU Make. Удобней, чем autotools (ИМХО. После 3го приложения под autotools надоело выполнять короткий танце с бубном по созданию configure.ac, Makefile.am, копированию файлов, вызов autoscan, auotheader, aclocal, automake, autoconf), у него более компактный синтаксис, но желательно знать питон хотя бы чуть-чуть. scons удобней для того, чтобы быстро начать проект, но с "удобной портабельностью", как я понял, у него чуток по хуже, хотя он гибче и мощней, чем autotools. Ещё он требует python для работы (ну, и, само собой, g++/gcc под линукс и какой-нибудь другой компилятор под виндой). Спасибо, буду ковыряться с make + autotools как и собирался. На scons гляну. ErV > > 2. IDE > Посоветуйте пожалуйста IDE под Linux - я пробовал KDevelop и Eclipse > CDT. Я пользуюсь kate (это не IDE, это текстовый редактор), на поиск IDE забил, так как каждая с выкрутасом. Более-менее удачная - MS Visual Studio, но "халявный эдишн" под Windows очень крив и неудобен. Да, и она удобней в лпане работы, но в плане построения билдов, ИМХО, лучше все-таки autotools/scons/GNU make. Рекомендую на IDE забить и взять любой редактор с подсветкой синтаксиса (например, Far Manager с плагином colorer), так как если работать без автокомпилта и прочей ерунды - это намного для мозгов полезней. Сначала тормоза, потом работа разгоняется больше, чем под IDE. FAR и MSVS не подходят - мне нужно под Linux. Про то что у каждой IDE свои заморочки полностью согласен - сам прихожу к такому мнению :) Видимо пока буду продолжать использовать vi и KDevelop параллельно. ErV > 3. Book Advice > Есть ли книга в которой есть глава об оргранизации структуры программы > ввиде нескольких модулей (cpp/h файлов). Как правильно ставить > зависимости? Best Practices? ИМХО, так как тебе удобней работать. Можешь посмотреть Qt 4 за примером неплохого C++ кода. Мне кажется или Qt4 на столько монстровая штука что я там увязну как новичок?! :) ErV > 4. Unit Testing > CppUnit - правильный выбор? Для чего? Интересует инструмент для юнит тестирования. Для начала просто бизнес-логики: базовый класс для тестов с ассертами, моки и репорты. + хочется запускать тесты из билда во время постройки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 18:12:35 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков2. Остановливайтесь на KDevelop - это настройка над штатными средствами разработки, чем и хороша. 1. KDevelop поддерживает CMake поэтому и с выбором Build системы тоже вроде определились. 4. Cppunit, пожалуй, то что нужно. Удачи! KDevelop поддерживает также и autotools, так что определились не до конца. Пожалуй я остановлюсь на gnu make + autotools для начала. А в чем преимущества у cmake? Спасибо за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 18:15:53 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
МолекулярныйДинамик Анатолий Широков2. Остановливайтесь на KDevelop - это настройка над штатными средствами разработки, чем и хороша. 1. KDevelop поддерживает CMake поэтому и с выбором Build системы тоже вроде определились. 4. Cppunit, пожалуй, то что нужно. Удачи! KDevelop поддерживает также и autotools, так что определились не до конца. Пожалуй я остановлюсь на gnu make + autotools для начала. А в чем преимущества у cmake? Спасибо за ответ. Преимущества CMake таковы, что позволяют собирать проект не только под Linux, но и под Windows. Например имея описания проекта на CMake мы можем без труда получить проект для Visual Studio. Autotools мощный инструмент, но только для юниксоподобных систем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 18:21:16 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
blinded МолекулярныйДинамик 4. Unit Testing CppUnit - правильный выбор? А другого нет Как под юникс эта завертся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 18:21:41 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков МолекулярныйДинамик Анатолий Широков2. Остановливайтесь на KDevelop - это настройка над штатными средствами разработки, чем и хороша. 1. KDevelop поддерживает CMake поэтому и с выбором Build системы тоже вроде определились. 4. Cppunit, пожалуй, то что нужно. Удачи! KDevelop поддерживает также и autotools, так что определились не до конца. Пожалуй я остановлюсь на gnu make + autotools для начала. А в чем преимущества у cmake? Спасибо за ответ. Преимущества CMake таковы, что позволяют собирать проект не только под Linux, но и под Windows. Например имея описания проекта на CMake мы можем без труда получить проект для Visual Studio. Autotools мощный инструмент, но только для юниксоподобных систем. Спасибо за ответ - посмотрю на CMake. Хотя как я понимаю кроссплатформенность это не проблема потому что: 1) Можно использовать autotools под CygWIN под виндой 2) Можно делать cross-compile бинарника под винду из линукса используя MinGW ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 18:38:08 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
blinded Учи gmake. Все остальное от лукавого Спасибо. Я понял что на gnu make нужно по крайней мере посмотреть обязательно!!! blinded Текстовый редактор с подсветкой и возможностьюзапуска командны shell. Можно vim, mc, nedit .. Об IDE лучше и не вспоминать это от лукавого Я понимаю что начинать изучение нужно с консоли и vi для понимания основ. Но потом хотелось бы каких-нибудь мало-мальских вкусняшек (не визардов с гуи дизайнерами): поднять метод в класс-предок, вызвать тесты, положиться в CVS одной кнопочкой. Можно конечно и vi надрочить до нужной кондиции :) Thx oncemore за ответ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 18:41:40 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
Akh blinded МолекулярныйДинамик 4. Unit Testing CppUnit - правильный выбор? А другого нет Как под юникс эта завертся? Чего это, вроде так и звалось cppunit - библиотека эта такая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 18:52:06 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
МолекулярныйДинамик blinded Текстовый редактор с подсветкой и возможностьюзапуска командны shell. Можно vim, mc, nedit .. Об IDE лучше и не вспоминать это от лукавого Я понимаю что начинать изучение нужно с консоли и vi для понимания основ. Но потом хотелось бы каких-нибудь мало-мальских вкусняшек (не визардов с гуи дизайнерами): поднять метод в класс-предок, вызвать тесты, положиться в CVS одной кнопочкой. Можно конечно и vi надрочить до нужной кондиции :) Thx oncemore за ответ! Ну я же предложил тебе emacs Кстати nedit гуёвый. Метод наверх поднять нетрудно и ручками, сложнее вниз опустить...Только при сложных проектах это все равно толком не работает, так что лучше и не привыкать. Лучший ide в этом случае - компилятор. ТЕсты запустить - одним пальцем - элементарно - достаточно иметь цель test в make. Если посмотришь все только так и делают. в СМЫ положить - тожу можно c помощью make ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 19:01:15 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
МолекулярныйДинамик wrote: > FAR и MSVS не подходят - мне нужно под Linux. Far под линуксом работает через wine, и есть midnight commander (который, правда, кривей) > Видимо пока буду продолжать использовать vi и KDevelop параллельно. все-таки советовал бы посмотреть на гуишный редактор с подсветкой синтаксиса. > Мне кажется или Qt4 на столько монстровая штука что я там увязну как > новичок?! :) Я думаю, что Qt все равно придется потом смотреть, так как оно позволяет делать кросс-плаатформенные GUI (Windows, Linux, Mac OS), и содержит довольно мощные инструменты (qmake, designer, assistan, linguist). -- We are all going to hell and I'm driving the bus Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2007, 11:15:02 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков пишет: > можем без труда получить проект для Visual Studio. Autotools мощный > инструмент, но только для юниксоподобных систем. Не совсем корректно. Операционная система здесь ни при чем. Нужен только GNU Toolchain. Например, все это добро отлично работает в MinGW. Но что верно, то верно - make абсолютно непереносимая штука, потому что любая строчка, начинающаяся с таба, - это ни что иное, как комманда шела. А шелы разные, даже в разных юниксах. И в этом смысле make безнадежно усталел, конечно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2007, 11:39:59 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
МолекулярныйДинамик пишет: > Я понимаю что начинать изучение нужно с консоли и vi для понимания > основ. Но потом хотелось бы каких-нибудь мало-мальских вкусняшек (не VI не изучай. Уж лучше Emacs. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2007, 11:41:20 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
MasterZiv Анатолий Широков пишет: > можем без труда получить проект для Visual Studio. Autotools мощный > инструмент, но только для юниксоподобных систем. Не совсем корректно. Операционная система здесь ни при чем. Нужен только GNU Toolchain. Например, все это добро отлично работает в MinGW. Но что верно, то верно - make абсолютно непереносимая штука, потому что любая строчка, начинающаяся с таба, - это ни что иное, как комманда шела. А шелы разные, даже в разных юниксах. И в этом смысле make безнадежно усталел, конечно. Posted via ActualForum NNTP Server 1.4 Ильюха, в конечном итоге к чему свелись твои потуги написать OS-independent make file? Так что, все же autotools это родной инструмент для Unix и MinGW слабое утешение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2007, 11:49:54 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
MasterZiv МолекулярныйДинамик пишет: > Я понимаю что начинать изучение нужно с консоли и vi для понимания > основ. Но потом хотелось бы каких-нибудь мало-мальских вкусняшек (не VI не изучай. Уж лучше Emacs. Posted via ActualForum NNTP Server 1.4 Не согласен. VI[M] знать надо так как он доступен из любой консоли, а вот emacs не везде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2007, 11:52:18 |
|
||
|
C++ environment - вопросы новичка
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков wrote: > Так что, все же autotools это родной инструмент для Unix На сайте Scons утверждается, что это легко переносимый сборщик. Т.е. под винду и лин. -- We are all going to hell and I'm driving the bus Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2007, 16:56:28 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34962323&tid=2027746]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
199ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 493ms |

| 0 / 0 |
