C/C++ - [решено] MS Visual C++ 6.0 Professional Edition

Аватара пользователя
dronsky

C/C++ - [решено] MS Visual C++ 6.0 Professional Edition

Сообщение dronsky »

Всем доброго времени суток. Долго изучал споры в сети по той теме, какой же компилятор С++ лучше, все-таки для себя решил, что будет лучше начать с него. Начинаю изучать С++ не совсем с нуля, до армии остановился на ссылках и указателях. И сразу же возник терзающий меня вопрос. Почему в 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

Сообщение torauma »

Взглянуть бы на исходник этого Hello World и на настройки компилятора.


Цитата 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

Сообщение pva »

в линуксе действительно shared включен по умолчанию:



Код:

Код: Выделить всё

$ 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 »

Цитата dronsky:



/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

Сообщение torauma »

Цитата dronsky:



какой же компилятор С++ лучше, все-таки для себя решил, что будет лучше начать с него
C/C++ - [решено] MS Visual C++ 6.0 Professional Edition




А почему? Да поправит меня гуру С++ pva, если я ошибаюсь.

По моему мнению, С++ сейчас стоит начинать изучать, только если планируется разрабатывать ПО для "железа". Писать простой прикладной софт на нем новичку тяжеловато, слишком много тонкостей и нюансов в языке. Почему не С#? Синтаксис тот же, только немного "проще", что ли. Не надо думать о указателях, адресации памяти, динамическом выделении памяти для массивов. C# более прикладной, что ли.
Аватара пользователя
Delirium

Re: C/C++ - [решено] MS Visual C++ 6.0 Professional Edition

Сообщение Delirium »

Цитата:



А почему?



Профессионально программированием не занимался, но в общем и целом начал изучать все это очень давно (с 12 лет), пришлось многое повидать, на многом выпускать код, в основном под свои нужды. Возраст подошел, пора делать карьеру, т.к. эта индустрия мне знакома более, чем другие, решил попробовать себя в ней. Пришел в местную контору, мб слышали "MERA Networks". У нас для начала карьеры очень даже не плохо, студенты туда так и ломятся, неплохой соцпакет, загранкомандировки, вообщем, хорошая печь бородатых кодеров Изображение



Но суть в чем: пришел к ним на собеседование, их техспец по С++ (других в тот день на месте не было) опрашивал меня, признаться честно, ответил я мало что (стало стыдно), вот и говорит, есть вариант податься либо в веб (Groovy & Grails, но мои знания по нему меня он, благо, не спрашивал, у него не тот профиль), либо учить С++. C груви я уже знаком, веб, конечно, очень популярная, перспективная область и все такое, но ЗП у них у сишников побольше будет (по сведениям из сети, по крайней мере), сфера у них в этой области достаточно широкая, для серваков и железа. Вот я и решил таки возобновить обучение. В перспективе планирую уйти куда-то покрупнее из-за ЗП (Intel, мб попытать счастья в Google).
Аватара пользователя
dronsky

Re: C/C++ - [решено] MS Visual C++ 6.0 Professional Edition

Сообщение dronsky »

Цитата torauma:



Цитата 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 »

Цитата 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 »

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

Сообщение torauma »

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
Ответить

Вернуться в «Программирование и базы данных»