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

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

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

Codeblocks > C++ - C++ IDE

11.02.2013, 20:34. Просмотров 7633. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2013, 20:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Codeblocks > C++ (C++ IDE):

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
Здравствуйте, очень хотелось бы получить совет по следующей проблеме, а именно: когда я запускаю отладку файла, то все идет нормально,...

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

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

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

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

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

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

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

Не по теме:

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

0
nonedark2008
11.02.2013, 21:32
  #8

Не по теме:


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

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

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

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

На счёт второго. Честно говоря не понемаю, как это влияет на размер, но да ладно.
На счёт третьего. Пробовал отключать соответсвуюшими ключами, но на размер, никак не повлеяло.
0
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,473
13.02.2013, 06:08 #10
Цитата Сообщение от XiloManX Посмотреть сообщение
И если указать соответствующие ключи
ты про ключи-то договори...
0
XiloManX
642 / 146 / 31
Регистрация: 11.02.2013
Сообщений: 277
13.02.2013, 06:44  [ТС] #11
А чё говорить-то. Уже все ссылки даны: и на подробную инструкцию (в ней написано, какие ключи надо внести в Code::Blocks), и на подробное описание ключей. Если не знешь заморский язык, тогда Google translate в помощь.
0
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,473
13.02.2013, 06:48 #12
тебе западло что ли ключи написать?
1
XiloManX
642 / 146 / 31
Регистрация: 11.02.2013
Сообщений: 277
13.02.2013, 07:02  [ТС] #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++
0
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,473
13.02.2013, 08:02 #14
я английский не знаю просто
0
XiloManX
642 / 146 / 31
Регистрация: 11.02.2013
Сообщений: 277
13.02.2013, 08:10  [ТС] #15
Цитата Сообщение от kravam Посмотреть сообщение
я английский не знаю просто
А Google translate, на что?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2013, 08:10
Привет! Вот еще темы с ответами:

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

Как поменять кодировку символов в CodeBlocks - C++ IDE
Ребята, пожалуйста, помогите, чтобы работала моя программа, я должен с Unicode кодировки перейти на Шестнадцатиричную, но не знаю как это...

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

Удаление Codeblocks/ - C++
После удаления Codeblocks значки *.cpp отображаются так. как будто Codeblocks установлен. Как правильно удалить эту программу? Одним...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
13.02.2013, 08:10
Ответ Создать тему
Опции темы

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