powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / C++ environment - вопросы новичка
18 сообщений из 18, страница 1 из 1
C++ environment - вопросы новичка
    #34961655
Здравствуйте,

Я новичок в 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 - правильный выбор?



Заранее спасибо всем ответившим.
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34962048
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МолекулярныйДинамик 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
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34962066
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МолекулярныйДинамикЗдравствуйте,

Я новичок в 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 - правильный выбор?

А другого нет


Заранее спасибо всем ответившим.
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34962167
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. Остановливайтесь на KDevelop - это настройка над штатными средствами разработки, чем и хороша.
1. KDevelop поддерживает CMake поэтому и с выбором Build системы тоже вроде определились.
4. Cppunit, пожалуй, то что нужно.

Удачи!
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34962192
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 - правильный выбор?
Для чего?


Интересует инструмент для юнит тестирования. Для начала просто бизнес-логики:
базовый класс для тестов с ассертами, моки и репорты.

+ хочется запускать тесты из билда во время постройки.
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34962203
Анатолий Широков2. Остановливайтесь на KDevelop - это настройка над штатными средствами разработки, чем и хороша.
1. KDevelop поддерживает CMake поэтому и с выбором Build системы тоже вроде определились.
4. Cppunit, пожалуй, то что нужно.

Удачи!

KDevelop поддерживает также и autotools, так что определились не до конца.
Пожалуй я остановлюсь на gnu make + autotools для начала.

А в чем преимущества у cmake?

Спасибо за ответ.
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34962212
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МолекулярныйДинамик Анатолий Широков2. Остановливайтесь на KDevelop - это настройка над штатными средствами разработки, чем и хороша.
1. KDevelop поддерживает CMake поэтому и с выбором Build системы тоже вроде определились.
4. Cppunit, пожалуй, то что нужно.

Удачи!

KDevelop поддерживает также и autotools, так что определились не до конца.
Пожалуй я остановлюсь на gnu make + autotools для начала.

А в чем преимущества у cmake?

Спасибо за ответ.

Преимущества CMake таковы, что позволяют собирать проект не только под Linux, но и под Windows. Например имея описания проекта на CMake мы можем без труда получить проект для Visual Studio. Autotools мощный инструмент, но только для юниксоподобных систем.
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34962214
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinded
МолекулярныйДинамик
4. Unit Testing
CppUnit - правильный выбор?

А другого нет



Как под юникс эта завертся?
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34962260
Анатолий Широков МолекулярныйДинамик Анатолий Широков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
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34962268
blinded
Учи gmake. Все остальное от лукавого

Спасибо. Я понял что на gnu make нужно по крайней мере посмотреть обязательно!!!

blinded
Текстовый редактор с подсветкой и возможностьюзапуска командны shell. Можно vim, mc, nedit ..
Об IDE лучше и не вспоминать это от лукавого


Я понимаю что начинать изучение нужно с консоли и vi для понимания основ. Но потом хотелось бы каких-нибудь мало-мальских вкусняшек (не визардов с гуи дизайнерами): поднять метод в класс-предок, вызвать тесты, положиться в CVS одной кнопочкой.

Можно конечно и vi надрочить до нужной кондиции :)

Thx oncemore за ответ!
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34962302
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh blinded
МолекулярныйДинамик
4. Unit Testing
CppUnit - правильный выбор?

А другого нет



Как под юникс эта завертся?
Чего это, вроде так и звалось cppunit - библиотека эта такая
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34962323
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МолекулярныйДинамик
blinded
Текстовый редактор с подсветкой и возможностьюзапуска командны shell. Можно vim, mc, nedit ..
Об IDE лучше и не вспоминать это от лукавого


Я понимаю что начинать изучение нужно с консоли и vi для понимания основ. Но потом хотелось бы каких-нибудь мало-мальских вкусняшек (не визардов с гуи дизайнерами): поднять метод в класс-предок, вызвать тесты, положиться в CVS одной кнопочкой.

Можно конечно и vi надрочить до нужной кондиции :)

Thx oncemore за ответ!
Ну я же предложил тебе emacs Кстати nedit гуёвый. Метод наверх поднять нетрудно и ручками, сложнее вниз опустить...Только при сложных проектах это все равно толком не работает, так что лучше и не привыкать. Лучший ide в этом случае - компилятор.
ТЕсты запустить - одним пальцем - элементарно - достаточно иметь цель test в make. Если посмотришь все только так и делают.
в СМЫ положить - тожу можно c помощью make
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34962806
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МолекулярныйДинамик 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
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34967501
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий Широков пишет:
> можем без труда получить проект для Visual Studio. Autotools мощный
> инструмент, но только для юниксоподобных систем.

Не совсем корректно. Операционная система здесь ни при чем.
Нужен только GNU Toolchain. Например, все это добро отлично
работает в MinGW. Но что верно, то верно - make абсолютно
непереносимая штука, потому что любая строчка, начинающаяся
с таба, - это ни что иное, как комманда шела. А шелы разные,
даже в разных юниксах. И в этом смысле make безнадежно усталел,
конечно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34967507
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МолекулярныйДинамик пишет:

> Я понимаю что начинать изучение нужно с консоли и vi для понимания
> основ. Но потом хотелось бы каких-нибудь мало-мальских вкусняшек (не


VI не изучай. Уж лучше Emacs.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34967548
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Анатолий Широков пишет:
> можем без труда получить проект для Visual Studio. Autotools мощный
> инструмент, но только для юниксоподобных систем.

Не совсем корректно. Операционная система здесь ни при чем.
Нужен только GNU Toolchain. Например, все это добро отлично
работает в MinGW. Но что верно, то верно - make абсолютно
непереносимая штука, потому что любая строчка, начинающаяся
с таба, - это ни что иное, как комманда шела. А шелы разные,
даже в разных юниксах. И в этом смысле make безнадежно усталел,
конечно.
Posted via ActualForum NNTP Server 1.4

Ильюха, в конечном итоге к чему свелись твои потуги написать OS-independent make file? Так что, все же autotools это родной инструмент для Unix и MinGW слабое утешение.
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34967559
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
МолекулярныйДинамик пишет:

> Я понимаю что начинать изучение нужно с консоли и vi для понимания
> основ. Но потом хотелось бы каких-нибудь мало-мальских вкусняшек (не


VI не изучай. Уж лучше Emacs.
Posted via ActualForum NNTP Server 1.4

Не согласен. VI[M] знать надо так как он доступен из любой консоли, а вот emacs не везде.
...
Рейтинг: 0 / 0
C++ environment - вопросы новичка
    #34969205
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий Широков wrote:

> Так что, все же autotools это родной инструмент для Unix
На сайте Scons утверждается, что это легко переносимый сборщик. Т.е. под
винду и лин.
--
We are all going to hell and I'm driving the bus
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / C++ environment - вопросы новичка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]