C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
-
dronsky
C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
Всем доброго времени суток. Долго изучал споры в сети по той теме, какой же компилятор С++ лучше, все-таки для себя решил, что будет лучше начать с него. Начинаю изучать С++ не совсем с нуля, до армии остановился на ссылках и указателях. И сразу же возник терзающий меня вопрос. Почему в Visual С++ конечный исполняемый файл получается таким толстым? Простой Hello World - 84 кб? Что это такое? Чему там занимать столько места? В gcc - 6 кб. Тот же Visual C++ 6.0 Standart Edition - 22 кб. И это в Release mode? Может кто-нибудь пояснить как это исправить? Может быть компилятор настраивается для этого как-то?
-
torauma
Re: C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
Взглянуть бы на исходник этого Hello World и на настройки компилятора.
Цитата dronsky:
все-таки для себя решил, что будет лучше начать с него.
Со времен выхода MS Visual C++ 6.0 стандарт языка минимум 2 раза поменялся, так что лучше поновее что нибудь выбрать.
Цитата dronsky:
все-таки для себя решил, что будет лучше начать с него.
C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
Со времен выхода MS Visual C++ 6.0 стандарт языка минимум 2 раза поменялся, так что лучше поновее что нибудь выбрать.
-
pva
Re: C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
в линуксе действительно shared включен по умолчанию:
Код:
Знаит твоё решение - искать как линковать стандартные библиотеки (или runtime) динамически
Код:
Код: Выделить всё
$ g++ -shared hello.cpp
$ ls -l
-rwxr-xr-x 1 andrey andrey 5279 Aug 12 17:03 a.out*
-rw-r--r-- 1 andrey andrey 94 Aug 12 16:49 hello.cpp
$ g++ -static hello.cpp
$ ls -l
-rwxr-xr-x 1 andrey andrey 1284734 Aug 12 17:03 a.out*
-rw-r--r-- 1 andrey andrey 94 Aug 12 16:49 hello.cppЗнаит твоё решение - искать как линковать стандартные библиотеки (или runtime) динамически
-
dronsky
Re: C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
Цитата dronsky:
/G4
Эта опция точно лишняя. С версии 5.0 компилятор ее игнорирует.
Попробуйте разные
Ну и обратите внимание на описание /O1
Цитата:
Creates the smallest code in the majority of cases.
Может быть в данном случае она дает обратный результат.
Цитата dronsky:
/D "_MBCS"
Насколько я понимаю, это включает поддержку MBCS. Возможно это влияет на размер.
/G4
C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
Эта опция точно лишняя. С версии 5.0 компилятор ее игнорирует.
Попробуйте разные
настройки оптимизации
. В частности, попробуйте /Os вместо /O1.Ну и обратите внимание на описание /O1
Цитата:
Creates the smallest code in the majority of cases.
Может быть в данном случае она дает обратный результат.
Цитата dronsky:
/D "_MBCS"
C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
Насколько я понимаю, это включает поддержку MBCS. Возможно это влияет на размер.
-
torauma
Re: C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
Цитата dronsky:
какой же компилятор С++ лучше, все-таки для себя решил, что будет лучше начать с него
А почему? Да поправит меня гуру С++ pva, если я ошибаюсь.
По моему мнению, С++ сейчас стоит начинать изучать, только если планируется разрабатывать ПО для "железа". Писать простой прикладной софт на нем новичку тяжеловато, слишком много тонкостей и нюансов в языке. Почему не С#? Синтаксис тот же, только немного "проще", что ли. Не надо думать о указателях, адресации памяти, динамическом выделении памяти для массивов. C# более прикладной, что ли.
какой же компилятор С++ лучше, все-таки для себя решил, что будет лучше начать с него
C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
А почему? Да поправит меня гуру С++ pva, если я ошибаюсь.
По моему мнению, С++ сейчас стоит начинать изучать, только если планируется разрабатывать ПО для "железа". Писать простой прикладной софт на нем новичку тяжеловато, слишком много тонкостей и нюансов в языке. Почему не С#? Синтаксис тот же, только немного "проще", что ли. Не надо думать о указателях, адресации памяти, динамическом выделении памяти для массивов. C# более прикладной, что ли.
-
Delirium
Re: C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
Цитата:
А почему?
Профессионально программированием не занимался, но в общем и целом начал изучать все это очень давно (с 12 лет), пришлось многое повидать, на многом выпускать код, в основном под свои нужды. Возраст подошел, пора делать карьеру, т.к. эта индустрия мне знакома более, чем другие, решил попробовать себя в ней. Пришел в местную контору, мб слышали "MERA Networks". У нас для начала карьеры очень даже не плохо, студенты туда так и ломятся, неплохой соцпакет, загранкомандировки, вообщем, хорошая печь бородатых кодеров
Но суть в чем: пришел к ним на собеседование, их техспец по С++ (других в тот день на месте не было) опрашивал меня, признаться честно, ответил я мало что (стало стыдно), вот и говорит, есть вариант податься либо в веб (Groovy & Grails, но мои знания по нему меня он, благо, не спрашивал, у него не тот профиль), либо учить С++. C груви я уже знаком, веб, конечно, очень популярная, перспективная область и все такое, но ЗП у них у сишников побольше будет (по сведениям из сети, по крайней мере), сфера у них в этой области достаточно широкая, для серваков и железа. Вот я и решил таки возобновить обучение. В перспективе планирую уйти куда-то покрупнее из-за ЗП (Intel, мб попытать счастья в Google).
А почему?
Профессионально программированием не занимался, но в общем и целом начал изучать все это очень давно (с 12 лет), пришлось многое повидать, на многом выпускать код, в основном под свои нужды. Возраст подошел, пора делать карьеру, т.к. эта индустрия мне знакома более, чем другие, решил попробовать себя в ней. Пришел в местную контору, мб слышали "MERA Networks". У нас для начала карьеры очень даже не плохо, студенты туда так и ломятся, неплохой соцпакет, загранкомандировки, вообщем, хорошая печь бородатых кодеров
Но суть в чем: пришел к ним на собеседование, их техспец по С++ (других в тот день на месте не было) опрашивал меня, признаться честно, ответил я мало что (стало стыдно), вот и говорит, есть вариант податься либо в веб (Groovy & Grails, но мои знания по нему меня он, благо, не спрашивал, у него не тот профиль), либо учить С++. C груви я уже знаком, веб, конечно, очень популярная, перспективная область и все такое, но ЗП у них у сишников побольше будет (по сведениям из сети, по крайней мере), сфера у них в этой области достаточно широкая, для серваков и железа. Вот я и решил таки возобновить обучение. В перспективе планирую уйти куда-то покрупнее из-за ЗП (Intel, мб попытать счастья в Google).
-
dronsky
Re: C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
Цитата torauma:
Цитата dronsky:
/G4 »
Эта опция точно лишняя. С версии 5.0 компилятор ее игнорирует.
Попробуйте разные настройки оптимизации. В частности, попробуйте /Os вместо /O1.
Ну и обратите внимание на описание /O1
Цитата:
Creates the smallest code in the majority of cases.
Может быть в данном случае она дает обратный результат.
Цитата dronsky:
/D "_MBCS" »
Насколько я понимаю, это включает поддержку MBCS. Возможно это влияет на размер.
Стоило мне вручную поменять настройки, т.е. так:
Код:
Компилятор вовсе перестал печь исполняемый файл, и ни на какие замены настроек более не реагировал никак. Исправил переустановкой среды.
Цитата dronsky:
/G4 »
Эта опция точно лишняя. С версии 5.0 компилятор ее игнорирует.
Попробуйте разные настройки оптимизации. В частности, попробуйте /Os вместо /O1.
Ну и обратите внимание на описание /O1
Цитата:
Creates the smallest code in the majority of cases.
Может быть в данном случае она дает обратный результат.
Цитата dronsky:
/D "_MBCS" »
Насколько я понимаю, это включает поддержку MBCS. Возможно это влияет на размер.
C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
Стоило мне вручную поменять настройки, т.е. так:
Код:
Код: Выделить всё
/Gz /ML /Za /w /W0 /GX /Os /Ob0 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /Fo"Release/" /Fd"Release/" /FD /cКомпилятор вовсе перестал печь исполняемый файл, и ни на какие замены настроек более не реагировал никак. Исправил переустановкой среды.
-
dronsky
Re: C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
Цитата dronsky:
В gcc - 6 кб
Не поверил, проверил:
Код:
бинарник - 910 К
Код:
из них код программы 1.2 К, остальное - runtime, debug information
Цитата dronsky:
Может кто-нибудь пояснить как это исправить
Не понял, как должно быть "правильно". Если в смысле что код меньше - то не согласен. Можно провести аналогию с огромным внедорожником: когда ему за руль садится миниатюрная блондинка, он всё равно больше "лады-калины".
В gcc - 6 кб
C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
Не поверил, проверил:
Код:
Код: Выделить всё
#include
using namespace std;
int main() {
cout бинарник - 910 К
Код:
Код: Выделить всё
909*077 a.exe
1*272 test.oиз них код программы 1.2 К, остальное - runtime, debug information
Цитата dronsky:
Может кто-нибудь пояснить как это исправить
C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
Не понял, как должно быть "правильно". Если в смысле что код меньше - то не согласен. Можно провести аналогию с огромным внедорожником: когда ему за руль садится миниатюрная блондинка, он всё равно больше "лады-калины".
-
pva
Re: C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
pva, у меня почему-то другой резльтат получился:
Код:
Код:
Код: Выделить всё
# du -b *
6192 hello_iostream
102 hello_iostream.cpp
1908 hello_iostream.o
4937 hello_printf
95 hello_printf.cpp
1072 hello_printf.o-
torauma
Re: C/C++ - [решено] MS Visual C++ 6.0 Professional Edition
pva, у меня почему-то другой резльтат получился:
Код:
Код:
Код: Выделить всё
# du -b *
6192 hello_iostream
102 hello_iostream.cpp
1908 hello_iostream.o
4937 hello_printf
95 hello_printf.cpp
1072 hello_printf.o