Здравствуйте, maks1180, Вы писали:
RW>>Eclipse
M>Она вроде на Java написана ? Не тормозит из-за этого ?
Не замечал такого, потенциально — да, может а так, если по-простому, NetBeans (тоже java) шустрая и очень похожа на VS, если нравится как она выглядит.
Здравствуйте, maks1180, Вы писали:
M>посоветуйте IDE для gcc. Желательно что-бы она и в Windows и в Linux работала.
На вкус и цвет...
Лично мне нравится QtCreator.
1) что-то не получилось его настроить на MinGW gcc, он пытается скомпилировать либо через cmake либо через qmake. Ищет файл mingw32-make.exe в папке MinGW не находит его и на этом всё
У меня сборка MinGW v10.2 которая не тянет зависимости, но у неё нет mingw32-make.exe. MinGW которые идут с QT не подходят, так как версия меньше чем 10 и ещё зависимости тянут.
2) так же не понравилось что файлы Headers & Sources в разных папках — это не удобно. Можно как-нибудь их объединить. Что-бы файл MyClass.cpp был рядом с MyClass.h ?
Здравствуйте, maks1180, Вы писали:
M>Спасибо. Она дебажить по шагам позволяет ? Class Explorer там есть ?
Дебажить позволяет. Есть навигация по коду. Вот прям class explorer-а нет.
Помимо идеёв рекомендую ознакомится с grep, ctags, vim -t, vim
Еще вариант ultimatepp.org тут есть и документация и типа класс эксплоера на случай если qt не зайдёт
Здравствуйте, maks1180, Вы писали:
vsb>>vscode
M>Как в ней компилировать. Я вообще в меню не нашёл ничего такого. Насколько я понял, это только для редактирование файлов, а не полноценная IDE ?
M>1) что-то не получилось его настроить на MinGW gcc, он пытается скомпилировать либо через cmake либо через qmake. Ищет файл mingw32-make.exe в папке MinGW не находит его и на этом всё
Жесть. Я так понимаю ты школьник и пытаешься что-то писать на С++. cmakе и qmake это системы генерации файлов для систем сборки типа make, nmake или вообще студии мелкомягкой и еще нескольких подобных. Собственно собирают всё маке или nmake или сама студия. И уже эти вызывают собственно компилятор или линкер для компиляции и линковки.
M>2) так же не понравилось что файлы Headers & Sources в разных папках — это не удобно. Можно как-нибудь их объединить. Что-бы файл MyClass.cpp был рядом с MyClass.h ?
Не надоело еще нести чушь? Почитай таки в инете, как пишутся и строятся проекты, как происходит их компиляция и сборка.
Здравствуйте, maks1180, Вы писали:
V>>Лично мне нравится QtCreator.
M>1) что-то не получилось его настроить на MinGW gcc, он пытается скомпилировать либо через cmake либо через qmake. Ищет файл mingw32-make.exe в папке MinGW не находит его и на этом всё M>У меня сборка MinGW v10.2 которая не тянет зависимости, но у неё нет mingw32-make.exe. MinGW которые идут с QT не подходят, так как версия меньше чем 10 и ещё зависимости тянут.
Работа с CMake (в срде QtCreator) — достаточно проста: https://doc.qt.io/qtcreator/creator-project-cmake.html
Создать файл CMakeLists.txt и открывай его, как файл проекта.
M>2) так же не понравилось что файлы Headers & Sources в разных папках — это не удобно. Можно как-нибудь их объединить. Что-бы файл MyClass.cpp был рядом с MyClass.h ?
Здравствуйте, maks1180, Вы писали:
M>1) что-то не получилось его настроить на MinGW gcc M>2) так же не понравилось что файлы Headers & Sources в разных папках
В общем тут людям лень будет объяснять как всё работает, под тут я подразумеваю весь форум rsdn. Другое дело оно работает не так, как тебе кажется и выводы у тебя неправильные и ошибочные. QtCreator имеет настройки как показывать файлы. Можешь показать всё в одной куче опцией "Упростить дерево" на вкладке "Проекты", кнопка выглядит как воронка. А MinGW у тебя не работает потому, что рано залез в настройки или скорее всего установил не то.
QtCreator лучший выбор. Я его скачиваю в составе Qt 5.9.9, там всё, компиляторы, библиотеки и так далее. https://download.qt.io/archive/qt/5.9/5.9.9/
У меня установлены эти версии в Windows и Debian, для установки нужно тупо запустить, дальше всё автоматом.
Можно наверное скачать более новую версию, но лучше брать релиз с длинной поддержкой LTS. А я не перехожу на новые версии, потому что другие библиотеки использующие Qt не переходят на новые версии. https://en.wikipedia.org/wiki/Qt_version_history
Если кратко под виндой будет 32-ух битные версии библиотек Qt под mingw, это те же компиляторы gcc, только под винду. А под GNU/Linux 64-ёх битные версии библиотек для GCC. А с тем, что выходит за эти рамки придётся сильно повозиться. Я уж думал, не проще под ту же винду сгенерировать всё для MSVC, да не заморачиваться.
Хотя опять же запрос был всего лишь на IDE, а фактически пришли к Qt, то есть аналогу платформ .NET или Java. Хотя Qt Creator прекрасно будет работать без библиотек Qt, но понадобятся настройки в нём самом или в системе сборки проекта (qmake, реже cmake).
И устанавливай по умолчанию. Должно всё заработать автоматом. Если не заработает переустанови ещё раз. И только потом, когда начнёшь разбираться что-то меняй.
Но из бесплатных и одновременно кроссплатформенных круче всего QtCreator. Причём приведённая сборка позволяет компилировать чистокровные C++ приложения под Android: x86, armv7.
Моя старая статья: ТОП лучших инструментов C++. Не то, что супер актуальна, но и изменить особо нечего. Разве от ChiliProject вернуться к истокам Redmine. Опять же многие описанные инструменты будет поддерживать QtCreator.
Я тоже когда-то со всем этим мучился и до сих пор мне кое-что не нравится. Потому лучше полагайся на автоматические настройки, потом будешь проводить опыты, когда всё заработает.
Здравствуйте, maks1180, Вы писали:
M>Получается что QT Creator не может без make компилировать ?
1. Qt Creator
2. Может, например с qbs, там нет этапа генерации Makefile. Make вообще сейчас редко используется, ninja более популярен.
Usage: mingw32-make [options] [target] ...
Options:
-b, -m Ignored for compatibility.
-B, --always-make Unconditionally make all targets.
-C DIRECTORY, --directory=DIRECTORY
Change to DIRECTORY before doing anything.
-d Print lots of debugging information.
--debug[=FLAGS] Print various types of debugging information.
-e, --environment-overrides
Environment variables override makefiles.
--eval=STRING Evaluate STRING as a makefile statement.
-f FILE, --file=FILE, --makefile=FILE
Read FILE as a makefile.
-h, --help Print this message and exit.
-i, --ignore-errors Ignore errors from recipes.
-I DIRECTORY, --include-dir=DIRECTORY
Search DIRECTORY for included makefiles.
-j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.
-k, --keep-going Keep going when some targets can't be made.
-l [N], --load-average[=N], --max-load[=N]
Don't start multiple jobs unless load is below N.
-L, --check-symlink-times Use the latest mtime between symlinks and target.
-n, --just-print, --dry-run, --recon
Don't actually run any recipe; just print them.
-o FILE, --old-file=FILE, --assume-old=FILE
Consider FILE to be very old and don't remake it.
-O[TYPE], --output-sync[=TYPE]
Synchronize output of parallel jobs by TYPE.
-p, --print-data-base Print make's internal database.
-q, --question Run no recipe; exit status says if up to date.
-r, --no-builtin-rules Disable the built-in implicit rules.
-R, --no-builtin-variables Disable the built-in variable settings.
-s, --silent, --quiet Don't echo recipes.
-S, --no-keep-going, --stop
Turns off -k.
-t, --touch Touch targets instead of remaking them.
--trace Print tracing information.
-v, --version Print the version number of make and exit.
-w, --print-directory Print the current directory.
--no-print-directory Turn off -w, even if it was turned on implicitly.
-W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
Consider FILE to be infinitely new.
--warn-undefined-variables Warn when an undefined variable is referenced.
This program built for i686-w64-mingw32
Report bugs to <bug-make@gnu.org>
IDE ничего не может, она изначально ссылается на компилятор. Там просто есть надстройка над компилятором или лучше сказать тупой вызов консольных команд.
qmake это тоже не нечто абстрактное: C:/Qt/Qt5.9.9/5.9.9/mingw53_32/bin/qmake.exe
Но систем сборки может быть много, фактически это нужно для файлов проекта, для qmake это *.pro.
QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project
Mode:
-project Put qmake into project file generation mode
In this mode qmake interprets files as files to
be built,
defaults to *; *; *; *.ts; *.xlf; *.qrc
Note: The created .pro file probably will
need to be edited. For example add the QT variable to
specify what modules are required.
-makefile Put qmake into makefile generation mode (default)
In this mode qmake interprets files as project files to
be processed, if skipped qmake will try to find a project
file in your current working directory
Warnings Options:
-Wnone Turn off all warnings; specific ones may be re-enabled by
later -W options
-Wall Turn on all warnings
-Wparser Turn on parser warnings
-Wlogic Turn on logic warnings (on by default)
-Wdeprecated Turn on deprecation warnings (on by default)
Options:
* You can place any variable assignment in options and it will be *
* processed as if it was in [files]. These assignments will be *
* processed before [files] by default. *
-o file Write output to file
-d Increase debug level
-t templ Overrides TEMPLATE as templ
-tp prefix Overrides TEMPLATE so that prefix is prefixed into the value
-help This help
-v Version information
-early All subsequent variable assignments will be
parsed right before default_pre.prf
-before All subsequent variable assignments will be
parsed right before [files] (the default)
-after All subsequent variable assignments will be
parsed after [files]
-late All subsequent variable assignments will be
parsed right after default_post.prf
-norecursive Don't do a recursive search
-recursive Do a recursive search
-set <prop> <value> Set persistent property
-unset <prop> Unset persistent property
-query <prop> Query persistent property. Show all if <prop> is empty.
-qtconf file Use file instead of looking for qt.conf
-cache file Use file as cache [makefile mode only]
-spec spec Use spec as QMAKESPEC [makefile mode only]
-nocache Don't use a cache file [makefile mode only]
-nodepend Don't generate dependencies [makefile mode only]
-nomoc Don't generate moc targets [makefile mode only]
-nopwd Don't look for files in pwd [project mode only]
У Visual Studio есть свои решения. Есть что-то более универсальное, вроде cmake.
В предыдущем комментарии я дал ссылку на Шлее. Можешь открыть файл проекта file.pro в QtCreator, а можешь запустить вот так (из книги):
qmake.exe file.pro -o Makefile
qmake -project
qmake
make
По нормальному во многих книгах часто дают сначала консольные команды с параметрами вызывающие различные утилиты компиляторов чтобы человек хоть что-то понял. Ты сейчас идёшь по обратному пути, включаешь IDE, а потом не понимаешь, почему не работает или наоборот работает. Да я в принципе так же делал. Запускаешь компиляцию, тебе IDE даже начинает выдавать запускаемые команды, но на это не обращаешь внимания.
В общем я дал ссылки на две книги, качай и читай. Скомпилируй проект из консоли без IDE. Посмотри про GCC, если уж заинтересовался. Если тебе неинтересно читать, то тут уж ничего не поделаешь. И тут правильно сказали, если тебе понравился Code::Blocks, используй его. Там свои файлы проекта.
Вот так Code::Blocks и скомпилировала мне тестовый консольный проект. А ты ищешь какие-то мнимые преимущества, есть там make и makefile, или нет. Люди от IDE обычно ждут автодополнение кода и прочие вспомогательные фичи. Опять же многие используют Qt, и выбор QtCreator логичен.
С другой стороны может тебе это неинтересно, что опять же не исключает использования QtCreator. Но можно и в других IDE сидеть и даже в консольном редакторе. Через консоль можно даже отлаживать. Тебе будут приходить сообщения ошибки по номеру строки и надо будет туда сходить и исправить.