Форум программистов, компьютерный форум CyberForum.ru

C++: IDE, инструментарий

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 53, средняя оценка - 4.83
XiloManX
641 / 145 / 31
Регистрация: 11.02.2013
Сообщений: 277
#1

Codeblocks > C++ - C++ IDE

11.02.2013, 20:34. Просмотров 7289. Ответов 52
Метки нет (Все метки)

Привет, всем форумчанам! Решил научиться программировать на C++. Примеры прогамм, пишу в IDE Code::Blocks (компилятор mingw) под Windows.

Как написано в книге по C++, начал с примера "Hello World!", и заметил, что на выходе получается немерянно здоровенный бинарник, размером в 943kB. Я так понял, что к бинарнику подключяются какие-то посторонние функции или вся либа "iostream". И в связи с этим, вопрос. Как сделать так, чтобы подключались только те функции, которые указаны в исходнике? Дело в том, что в Linux'е, этот же пример на C++, весит примерно ~5kB.

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
using namespace std;
 
int main()
{
    cout << "Hello world!" << endl;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2013, 20:34     Codeblocks > C++
Посмотрите здесь:

C++ 14 в CodeBlocks - C++ IDE
Делаю примеры из книги Страуструпа. Там используется vector,sort. CodeBlocks не хочет понимать новые версии C++. Как это исправить.Заранее...

CodeBlocks и Unicode - C++ IDE
Здравствуйте!В CodeBlocks стандартная кодировка 1251. Мне нужна Unicode кодировка. В Edit-&gt;File Encoding указываю любую из Unicode...

Ключи CodeBlocks - C++ IDE
Помогите разобраться в секретах быстродействия. Вот у меня есть vector&lt; vector&lt;double&gt; &gt; *Y; Y = new vector&lt; vector&lt;double&gt; &gt;; ...

Codeblocks и параметры запуска - C++ IDE
В общем-то столкнулся с проблемой. Не могу найти в C::B, как заставить программу запускаться с нужными параметрами( argv )? Возможно ли...

Настройка отладчика в CodeBlocks - C++ IDE
Здравствуйте, очень хотелось бы получить совет по следующей проблеме, а именно: когда я запускаю отладку файла, то все идет нормально,...

Странности с wxWidgets и CodeBlocks и с Boost - C++ IDE
Я совсем в программировании новичок. Помогите разобраться. Скачал либы wxWidgets и Boost. Собрал c помощью GCC под windows. ...

Дайте совет по связке wxWidgets+codeblocks - C++ IDE
Хочу попробовать создание программы с оконным интерфейсом. С горем пополам связку wxWidgets+codeblocks завел. Стартовое приложение с формой...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
11.02.2013, 20:41     Codeblocks > C++ #2
во-первых, смените debug на release, объем значительно уменьшится. к примеру ваша программа с 38кб уменьшилась до 9кб
XiloManX
641 / 145 / 31
Регистрация: 11.02.2013
Сообщений: 277
11.02.2013, 20:44  [ТС]     Codeblocks > C++ #3
Уже делал, и программа стала ~500kB, а должна быть меньше.
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
11.02.2013, 20:50     Codeblocks > C++ #4
Цитата Сообщение от XiloManX Посмотреть сообщение
Уже делал, и программа стала ~500kB, а должна быть меньше.
ну тогда это проблемы ide или компилятора, я точно не знаю.
кстати, разве обычно с++ не начинают изучать с visual studio?)
в vs2008 ехе весит 9кб(релиз) и 38кб(дебаг)
в builder (rad xe3) exe весит 169кб(релиз) и 170кб(дебаг)

следовательно, напрашивается вывод, что все зависит от среды

Добавлено через 1 минуту
ps
включил rtl link и проект ставил весить в билдере 11кб(релиз)
XiloManX
641 / 145 / 31
Регистрация: 11.02.2013
Сообщений: 277
11.02.2013, 21:00  [ТС]     Codeblocks > C++ #5
Цитата Сообщение от Tiva Посмотреть сообщение
ну тогда это проблемы ide или компилятора, я точно не знаю.
кстати, разве обычно с++ не начинают изучать с visual studio?)
Да, но Visual Studio платный и очень громоздкий, поэтому я выбрал лёгкий и бесплатный CodeBlocks.

Цитата Сообщение от Tiva Посмотреть сообщение
в vs2008 ехе весит 9кб(релиз) и 38кб(дебаг)
в builder (rad xe3) exe весит 169кб(релиз) и 170кб(дебаг)
Да, знаю. Уже пробовал.

Цитата Сообщение от Tiva Посмотреть сообщение
следовательно, напрашивается вывод, что все зависит от среды
Наверно, но мне думается, что там надо делать какие-то настройки в CodeBlocks, чтобы уменьшить размер бинарника. Видимо придётся программировать так, как есть, и в дальнейшем переходить в Linux.
nonedark2008
884 / 623 / 125
Регистрация: 28.07.2012
Сообщений: 1,664
11.02.2013, 21:11     Codeblocks > C++ #6
При компиляции VS уже расчитывает на то, что на компе установлен Visual C++ Redistributable - набор библиотек.
Если его не будет, то и скомпилированная программа не запустится. Если в VS указать, чтобы он эти библиотеки пришивал к файлу exe, то он станет весить те же 500КБ. И от этого по мне так никуда не деться, таковы огрехи новых компиляторов - 500КБ это ведь совершенно не много. Если хочется по меньше, то беретсяя какой-нить старый компилятор компилируется там, например Borland C. Но и там уже вставляется ненужный код, так что можно программу деассемблировать и удалить ненужные куски. Но кто будет заниматься этим идиотизмом? В наше время 1ГБ - это и так мелочь... (За исключением пользователей SSD >_>)
Croessmah
11.02.2013, 21:25
  #7

Не по теме:

Цитата Сообщение от XiloManX Посмотреть сообщение
Да, но Visual Studio платный
Express версия бесплатна. Доступна для скачивания на сайте мелкософта.

nonedark2008
11.02.2013, 21:32
  #8

Не по теме:


Цитата Сообщение от Croessmah Посмотреть сообщение
Express версия бесплатна. Доступна для скачивания на сайте мелкософта.
Жалко, что на VS2012 Express не попрограммируешь, там кажись возможны только Метро-приложения. А так, закачка и установка VS это единичное дело и разряда "поставил и забыл". Ради лучшего функционала, отладки и анализа производительности, я бы потерпел =)

XiloManX
641 / 145 / 31
Регистрация: 11.02.2013
Сообщений: 277
13.02.2013, 05:37  [ТС]     Codeblocks > C++ #9
Вообщем, задал несколько вопросов на официальном форуме Code::Blocks. Как оказалось, бинарник такой большой, из-за того, что в него включается отладочная информация. И вообще, дело не совсем в Code::Blocks, а в компиляторе MinGW. И если указать соответствующие ключи в Code::Blocks, которые при компиляции будут переданы сопроцессору MinGW, то он будет размером всего 8.50kB. Хотя на мой взгляд и зто очень много, ибо на своём опыте это знаю.

Тут находится инструкция, с указанием, как сделать ваш бинарник меньше в Code::Blocks (на заморском языке).

Вообще на официальном сайте MinGW, написано, что бинарник такой большой по трём причинам:
1. Включается отладочная информация.
2. Производится раздельная компиляция.
3. Включается какая-то информация о времени запуска.

На счёт второго. Честно говоря не понемаю, как это влияет на размер, но да ладно.
На счёт третьего. Пробовал отключать соответсвуюшими ключами, но на размер, никак не повлеяло.
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
13.02.2013, 06:08     Codeblocks > C++ #10
Цитата Сообщение от XiloManX Посмотреть сообщение
И если указать соответствующие ключи
ты про ключи-то договори...
XiloManX
641 / 145 / 31
Регистрация: 11.02.2013
Сообщений: 277
13.02.2013, 06:44  [ТС]     Codeblocks > C++ #11
А чё говорить-то. Уже все ссылки даны: и на подробную инструкцию (в ней написано, какие ключи надо внести в Code::Blocks), и на подробное описание ключей. Если не знешь заморский язык, тогда Google translate в помощь.
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
13.02.2013, 06:48     Codeblocks > C++ #12
тебе западло что ли ключи написать?
XiloManX
641 / 145 / 31
Регистрация: 11.02.2013
Сообщений: 277
13.02.2013, 07:02  [ТС]     Codeblocks > C++ #13
Цитата Сообщение от kravam Посмотреть сообщение
тебе западло что ли ключи написать?
А тебе западло, посмотреть инструкцию?Там уже, все ключи написаны.

Открыть Build options (установить флажки только "Strip all symbols from binary" и "Optimize generated code for size", все остальные должны флаги, быть сброшены), вставить в Other options
-fno-rtti
-fno-exceptions
-ffunction-sections
-fdata-sections
-flto
Открыть Linker settings, в табе The Link libraries, вставить в Other linker options:
-------------------------------------------------------------------------------------------
-flto
-Os
-Wl,--gc-sections
-shared-libgcc
-shared-libstdc++
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
13.02.2013, 08:02     Codeblocks > C++ #14
я английский не знаю просто
XiloManX
641 / 145 / 31
Регистрация: 11.02.2013
Сообщений: 277
13.02.2013, 08:10  [ТС]     Codeblocks > C++ #15
Цитата Сообщение от kravam Посмотреть сообщение
я английский не знаю просто
А Google translate, на что?
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
14.02.2013, 06:22     Codeblocks > C++ #16
Цитата Сообщение от XiloManX Посмотреть сообщение
Да, но Visual Studio платный и очень громоздкий, поэтому я выбрал лёгкий и бесплатный CodeBlocks.
открою тайну, но уже крякнуто всё, и везде. гугли.
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
14.02.2013, 08:39     Codeblocks > C++ #17
И, к тому же, под большим дапвлением народных масс мелкософт-таки включил в экспресс-версию VS 2012 возможность создавать десктопные приложения.
MrCold
14.02.2013, 08:47
  #18

Не по теме:

Цитата Сообщение от PreFX Посмотреть сообщение
VS 2012 возможность создавать десктопные приложения.
PreFX если не секрет, Windows Forms ?

PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
14.02.2013, 10:14     Codeblocks > C++ #19
Не являюсь обладателем экспресс-версии, но вот консольные там создавать точно можно. Может быть, WF тоже в комплекте.

Добавлено через 7 минут
Хм, сайт мелкософта ВНЕЗАПНО не грузится, но вот на википедии так и сформулировано: десктопные приложения. Вероятно, что WF всё-таки включены, так как различные варианты распространения VS различаются в основном всякими плюшками вроде юнит-тестов (которые, кстати, в VS 2012 Express включены), Microsoft SQL и командных проектов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2013, 10:28     Codeblocks > C++
Еще ссылки по теме:

Непонятки в Visual studio express 2012 и CodeBlocks - C++ IDE
Когда шаг доходит до cin, во время отладки, то перекидывает в библиотеку iostream, как я понимаю. Далее, нужно довольно долго жать f11,...

Как в codeblocks создавать сложные проекты? Как связывать файлы между собой? - C++ IDE
Не могу найти никакого руководства. Как компилировать?

WxWidgets + CodeBlocks + MinGW "на пальцах" - C++ IDE
Гуру, дайте совет новичку! Освоил консоль в Win+Codeblocs+MinGW. Теперь хочу попробовать рисовать &quot;окошки&quot; (в редакторе окошек, а не...

CodeBlocks - C++ Linux
Использую IDE CodeBlocks, открываю например вспомогательное окно дебагера &quot;Watches&quot; или любое другое, не суть! И верхняя часть окна...

codeblocks 10.05 - Софт
установил codeblocks 10.05 попробовал написать простейшую программу и получил: sh:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
14.02.2013, 10:28     Codeblocks > C++ #20
НА фиг вам 2012? Работайте c 2010 если уж так приспичило.
Yandex
Объявления
14.02.2013, 10:28     Codeblocks > C++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru