Форум программистов, компьютерный форум 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 завел. Стартовое приложение с формой...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XiloManX
641 / 145 / 31
Регистрация: 11.02.2013
Сообщений: 277
15.02.2013, 05:44  [ТС]     Codeblocks > C++ #41
Видимо, надо изучать С, а не С++. Терпеть не могу, искусственного раздутия программ.
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
15.02.2013, 05:48     Codeblocks > C++ #42
kravam, например, не запустится, если не будет папки bin в переменной path. Так как, как я уже говорил, я не пользуюсь
Цитата Сообщение от kravam Посмотреть сообщение
mingw-get-inst-20120426.exe
, а использую сборки niXman`a, в которых компилятор идет в одном архиве. И в переменную path добавляю сам путь до папки bin, для возможности компиляции из командной строки и для IDE Netbeans. Просто, на сколько я помню, есть такие среды, которым нужно явно указывать в настройках, где находится компилятор, или нужно указать саму папку с компилятором в переменной path, и им не важна папка bin, пути до нее в переменной path может просто не быть. Вроде Eclipse такая.
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
15.02.2013, 05:58     Codeblocks > C++ #43
Я над другим задумался. Получается с динамическим подсоединением фигня полная. Так, если я сделал динамическую компоновку, например 20-ти программ и использую их для себя а потом решил снести MinGW, они и не запустятся теперь что ли? Получается, мне щас все эти программы над искать и перекомпоновывать. Грязь какая-то...

А использовать -static... А тогда возникает вопрос- а зачем ВООБЩЕ нужна динамическая компоновка? Чисто для проформы- вот смотрите типа, она есть. Только она бесполезна.

А и выход-то из положения- всего-навсего заставить установщик распихивать библиотеки по системным директориям.
XiloManX
641 / 145 / 31
Регистрация: 11.02.2013
Сообщений: 277
15.02.2013, 06:34  [ТС]     Codeblocks > C++ #44
Цитата Сообщение от kravam Посмотреть сообщение
Я над другим задумался. Получается с динамическим подсоединением фигня полная. Так, если я сделал динамическую компоновку, например 20-ти программ и использую их для себя а потом решил снести MinGW, они и не запустятся теперь что ли? Получается, мне щас все эти программы над искать и перекомпоновывать. Грязь какая-то...
А использовать -static... А тогда возникает вопрос- а зачем ВООБЩЕ нужна динамическая компоновка? Чисто для проформы- вот смотрите типа, она есть. Только она бесполезна.
А и выход-то из положения- всего-навсего заставить установщик распихивать библиотеки по системным директориям.
На сколько я знаю, динамические библиотеки, сделаны для уменьшения размера программ, и экономии пространства на диске. То есть динамические библиотеки, выступают в роли помойки, в которой много всего, можно всем пользоваться, но ничего нельзя брать с собой. А программы - это нищеброды: приходят, попользуются и уходят.

А вообще, я тоже не очень люблю динамические библиотеки. По нескольким причинам:
1. При запуске программы, создаются сильные тормоза и съедается много памяти.
2. Куча библиотек, с ненужным набором функций, которыми я никогда не воспользуюсь. Все эти библиотеки будут висеть мёртвым грузом. И что олучается? Библиотеки сделаны для экономии пространства, но на самом деле, они ничего не экономят.
3. Чтобы запустить одну программу размером 10Мб, надо таскать с собой тонну библиотек размером, как минимум в несколько сотен мегобайт, а то и больше.
4. Плюс DLL Hell.
Цитата Сообщение от kravam Посмотреть сообщение
Получается с динамическим подсоединением фигня полная. Так, если я сделал динамическую компоновку, например 20-ти программ и использую их для себя а потом решил снести MinGW, они и не запустятся теперь что ли? Получается, мне щас все эти программы над искать и перекомпоновывать. Грязь какая-то...
Но тут есть только три варианта:либо таскать DLL с собой, либо сделать инстоллятор, который будет автоматически устанавливать программу, либо сделать статическую компановку.
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
15.02.2013, 06:45     Codeblocks > C++ #45
Цитата Сообщение от XiloManX Посмотреть сообщение
Но тут есть только три варианта:либо таскать DLL с собой, либо сделать инстоллятор, который будет автоматически устанавливать программу, либо сделать статическую компановку.
да, но я-то говорю о случае, когда я как был за компом так за компом и остался.

Куда таскать? Комп один и тот же...
XiloManX
641 / 145 / 31
Регистрация: 11.02.2013
Сообщений: 277
15.02.2013, 07:02  [ТС]     Codeblocks > C++ #46
Цитата Сообщение от kravam Посмотреть сообщение
да, но я-то говорю о случае, когда я как был за компом так за компом и остался.
Куда таскать? Комп один и тот же...
Нет, если программы для тебя, то можно и динамическими библиотеками пользоваться. Вообще решать тебе. Я имел ввиду, что если программ много, и они используют, много разных библиотек (часть функций будут висеть мёртвым грузом)?Или программы используют разные версии библиотек (будут конфликты)?Или программы для массового использования (надо таскать библиотеку)? Или использует много тяжеловесных динамических функций из разных библиотек (будут ужасные тормоза и перерасход оперативной памяти).
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
15.02.2013, 07:29     Codeblocks > C++ #47
Цитата Сообщение от XiloManX Посмотреть сообщение
Нет, если программы для тебя, то можно и динамическими библиотеками пользоваться.
что значит "можно динамическими библиотеками пользоваться?"

Вот ситуация- я написал
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
using namespace std;
 
int main()
{
    cout << "Hello world!" << endl;
    return 0;
}
, динамически скомпилил, а потом снёс MinGW; как теперь программу запустить? Никак.
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
15.02.2013, 07:33     Codeblocks > C++ #48
kravam, а на что по Вашему папка bin? Сохраняете куда нибудь все dll из нее в отдельную папку, и все. Их общий размер не превышает 3 мегабайт. У меня они занимают 2.68 mb. Всего их 7 штук.
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
15.02.2013, 12:46     Codeblocks > C++ #49
Я лучше об угол е...сь.
Лучше уж тогда в системную директорию закинуть и пусть лежат себе, полёживают. Так опять же кидать вручную. Эх, нет в жизни счастья.
XiloManX
641 / 145 / 31
Регистрация: 11.02.2013
Сообщений: 277
16.02.2013, 00:39  [ТС]     Codeblocks > C++ #50
Цитата Сообщение от kravam Посмотреть сообщение
Лучше уж тогда в системную директорию закинуть и пусть лежат себе, полёживают. Так опять же кидать вручную. Эх, нет в жизни счастья.
А зачем их кидать вручную? Есть же пакетные файлы (.BAT). Пишешь команду, далее указываешь директорию - откуда копировать, и директорию - куда копировать. И всего делов.

Вот пример (копирование) (для Windows):
chdir C:\MinGW\bin\
copy libstdc++-6.dll C:\WINDOWS\system32\libstdc++-6.dll
pause
Вот пример (перемещение) (для Windows):
chdir C:\MinGW\bin\
move libstdc++-6.dll C:\WINDOWS\system32\libstdc++-6.dll
pause
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
16.02.2013, 01:19     Codeblocks > C++ #51
12 dll-ок, имена которых известны, находящихся в ОДНОЙ папке перекидывать с помощью батника? Хотя у нас демократия, кто как хочет, тот так пусть и др делает.

Я другое имел ввиду. Вот например, установщик GIMP- Это же он наверное запихал свои dll-ки в системную директорию не спросясь. Вот это я и называю невручную.

Правда, тут есть одно но- некоторым может это не понравится. Типа почему какая-то левая программа распоряжается системными директориями. А тогда при удалении деинсталлятор пусть спрашивает- оставить dll-ки в системной директории или нет (мы предполагаем, что он их туда поставит)

С gimp-ом такой вариант может не прокатить. Потому что пользователи gimp могут и не знать, что такое системная директория. А пользователи MinGW знают, поэтому я при деинсталляции последнего ставлю галку напротив "сохранить dll-ки в системных директориях", удаляю MinGW и работаю себе спокойно с программами, которые создались при помощи динамической компоновки (а, следовательно, занимают немного места) ибо необходимые dll-ки сохранились; чем не вариант?

И это правильно не только потому, что это меньше движений для пользователя. Типа мне лень. Ни хрена. Щас-то как обстоят дела- я ведь и знать не знаю, что работоспособность моих программ напрямую зависит от наличия ГДЕ-ТО ТАМ dll-ок. Ладно я щас узнал. А если бы не узнал? Нехорошо это со стороны производителей MinGW, крайне нехорошо.

Хотя может в readme.txt где-нибудь маленькими буквами на последней странице жёлтым цветом подобное предупреждение и написано: "при деинсталляции MinGW программы, скомпонованные без -static, работать не будут", я не знаю.
XiloManX
641 / 145 / 31
Регистрация: 11.02.2013
Сообщений: 277
16.02.2013, 03:10  [ТС]     Codeblocks > C++ #52
kravam Чего-то, я тебя не понял. Ты же говорил, что своими программами пользуешься только ты, тогда причём тут пользователи?

Добавлено через 9 минут
Цитата Сообщение от kravam Посмотреть сообщение
12 dll-ок, имена которых известны, находящихся в ОДНОЙ папке перекидывать с помощью батника? Хотя у нас демократия, кто как хочет, тот так пусть и др делает.
А батник никто и не навязывает. Ты стал говорить о перекидывании файлов вручную, вот я придложил батник, так как до этого, предлогал инстоллятор.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2013, 03:42     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
16.02.2013, 03:42     Codeblocks > C++ #53
Я обобщённо. Своими программами пользуюсь я, а MinGW пользуются все.
Yandex
Объявления
16.02.2013, 03:42     Codeblocks > C++
Ответ Создать тему
Опции темы

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