Question for Cranium about IDEs

Установил я DevC++, в которой действительно есть настройка, которая отключает связь с определенными файлами. Так же как ты, установил Code::Blocks, который «привязал» к компилятору MinGW.
Скомпилировал несколько программ, создал проект, пустое консольное приложение, создал и запустил простой исходный файл.
Заметил странность — .exe файл пустого проекта «весит» до 6,5 Мб при компиляции с помощью конфигурации компилятора TDM-GCC 4.7.1 64-bit Debug и до 4,5 Мб при помощи TDM-GCC 4.7.1 32-bit Debug. Аналогичное приложение созданное в MS VS 2010 «весит» 94 Кб.
Может быть нужно сделать какие-то настройки?
Череп , если можешь подскажи, как подогнать эти две IDE так, чтобы они работали с оптимальными настройками.
MS VS 2010 при установке сразу использует оптимальные параметры, а в случае с DevC++ и Code::Blocks, я так понимаю, нужно поработать ручками и самому все настроить.

PS Кстати действительно после MS VS работать, а тем более отлаживать проект ОЧЕНЬ СЛОЖНО. (Например, неинициализированная переменная в программе, ни DevC++ ни Code::Blocks не выдают предупреждения и программа запускается и работает, хотя заведомо ведет к краху.)
Есть еще одна странность в DevC++, при переносе текста кода, допустим в пост на форум или наоборот копируешь код с форума, то русские буквы отображаются в виде «кракозябров»

cout << "Ââåäèòå öèôðó: ";

Что это такое и как с этим бороться? :)

Заранее СПАСИБО!!!

Есть еще одна странность в DevC++, при переносе текста кода, допустим в пост на форум или наоборот копируешь код с форума, то русские буквы отображаются в виде «кракозябров»

Это не баг, это — фича ))) Если при копировании из Dev-C++ клавиатура переключена в русский, то кириллица копируется корректно.

Заметил странность — .exe файл пустого проекта «весит» до 6,5 Мб при компиляции с помощью конфигурации компилятора TDM-GCC 4.7.1 64-bit Debug и до 4,5 Мб при помощи TDM-GCC 4.7.1 32-bit Debug. Аналогичное приложение созданное в MS VS 2010 «весит» 94 Кб.
Может быть нужно сделать какие-то настройки?

Я особо в этом не разбирался... но кое что могу подсказать.

Во-первых, не надо сравнивать объём 32-битного и 64-битного приложения. 64-битное почти всегда будет больше. В двух словах объяснить сложно, но хотя бы прими во внимание размер адресов в машинных командах.

Во-вторых, MS VS по умолчанию использует динамическую линковку CRT. Это — раз. Также есть большое подозрение, что кроме этого ещё что-то линкуется динамически. Это — два. Что именно там происходит с динамической линковкой разбираться, честно говоря, лень.

В-третьих, сравнивать объёмы выходных файлов различных компиляторов, предназначенных для отладки, — некорректно. MS VS во внешних файлах ещё дополнительно держит отладочную информацию. Так что сколько там реально используется — одному Гейтсу известно.

Ради спортивного интереса откомпилировал Snake (всё — x64 release):

IDE/компилятор           Размер .exe
------------------------------------
Dev-C++ default            1,903,294
Code::Blocks default         645,120
MS VS 2012 default            39,424

Dev-C++ optimiz.             645,120
MS VS 2012 static CRT        284,672

По умолчанию Dev-C++ в режиме Release не делает никаких оптимизаций. Т.е. компилятор запускается в режиме по умолчанию (ключами задаются только имена выходных файлов и каталоги для заголовочных файлов).

Code::Blocks по умолчанию в режиме Release включает оптимизацию -O2 и вычищает символы при линковке -s. Сразу заметна разница в размере файла.

Полное описание GNU GCC можно найти здесь. Всего 808 страниц — и все ключи от GNU Compiler Collection будут у тебя в руках.

Указание ключей для компилятора/линкера в Dev-C++ можно сделать либо на уровне проекта (меню Проект->Параметры проекта), при этом при переключении, допустим, из Debug в Release сделанные установки сбрасываются на установки по умолчанию, либо на уровне настроек по умолчанию (меню Сервис->Параметры компилятора). На счёт оптимальных настроек — см. руководство по GCC по ссылке выше.

MS VS 2010 при установке сразу использует оптимальные параметры, а в случае с DevC++ и Code::Blocks, я так понимаю, нужно поработать ручками и самому все настроить.

Оптимальность параметров зависит от конкретной задачи. Но MS поработал в этом направлении больше )) Где-то прочитал фразу: В Линуксе настраивать можно всё. И вы БУДЕТЕ всё настраивать.

PS. А почему ты пользуешься версией TDM-GCC 4.7.1? Я уже давно проапгрейдил до 4.8.1. См. здесь.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.