Здравствуйте, Xhunter, Вы писали:
X>Подскажите, их каких файлов (файлах с каким расширением) компилятор си или си++ берет код и вкомпиливает его в конечный екзешник?
.c для Си и .cpp для C++
Но не лучше ли было об этом спрашивать в форуме по C/С++? А то такими темпами скоро и флаги форматирования printf'а станут важнейшим вопросом Философии программирования...
Здравствуйте, Xhunter, Вы писали:
X>Подскажите, их каких файлов (файлах с каким расширением) компилятор си или си++ берет код и вкомпиливает его в конечный екзешник?
Здравствуйте, Tark, Вы писали:
X>>Подскажите, их каких файлов (файлах с каким расширением) компилятор си или си++ берет код и вкомпиливает его в конечный екзешник?
T>Очень извиняюсь, но разве не из *.lib?
Здравствуйте, Tark, Вы писали:
T>Здравствуйте, Xhunter, Вы писали:
X>>Подскажите, их каких файлов (файлах с каким расширением) компилятор си или си++ берет код и вкомпиливает его в конечный екзешник?
T>Очень извиняюсь, но разве не из *.lib?
T>Best regards.
Можеть быть и из *.lib. Но *.lib файлы, как я подозреваю содержат информацию для связи импортируемых из *.dll функций с конечным исполняемым файлом. Но не все же функции импортируются из dll. Код некоторых линкуется прямо с кодом конечного *.exe файла.
Или я что то недопонимаю . Хотелось бы услышать мнение эксперта
Здравствуйте, Xhunter, Вы писали:
X>Подскажите, их каких файлов (файлах с каким расширением) компилятор си или си++ берет код и вкомпиливает его в конечный екзешник?
Вообще-то в конечный екзешник влинкивает линкер, а не вкомпиливает компилятор.
Здравствуйте, Tark, Вы писали:
T>Здравствуйте, Xhunter, Вы писали:
T>Очень извиняюсь, но разве не из *.lib?
Из *.OBJ
T>Best regards.
... << RSDN@Home 1.1.4 @@subversion >>
Re[2]: И снова C/C++
От:
Аноним
Дата:
08.09.04 08:17
Оценка:
Здравствуйте, Sergey J. A., Вы писали:
SJA>Вообще-то в конечный екзешник влинкивает линкер, а не вкомпиливает компилятор.
Ooops... А кто тогда делает whole program optimization? Это когда информация из кучи объектников сливается в кучу, оптимизируется и затем из этого делается объектник? По-моему, как раз тот случай, когда "вкомпиливает компилятор".
PS. /GL для MSVC и /Qipo для ICC
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Sergey J. A., Вы писали:
SJA>>Вообще-то в конечный екзешник влинкивает линкер, а не вкомпиливает компилятор.
А>Ooops... А кто тогда делает whole program optimization? Это когда информация из кучи объектников сливается в кучу, оптимизируется и затем из этого делается объектник? По-моему, как раз тот случай, когда "вкомпиливает компилятор". А>PS. /GL для MSVC и /Qipo для ICC
"информация из кучи объектников" используется для дополнительной оптимизации каждого объектного файла, и количество их не меняется — никакого нового единственного объектного файла не генерируется.
Здравствуйте, <Аноним>, Вы писали:
А>Ooops... А кто тогда делает whole program optimization? Это когда информация из кучи объектников сливается в кучу, оптимизируется и затем из этого делается объектник? По-моему, как раз тот случай, когда "вкомпиливает компилятор". А>PS. /GL для MSVC и /Qipo для ICC
Ну IMHO компилятор в этом случае вкомпиливает в некоторый промежуточный файл, который затем влинкивается линкером в конечный экзешник.
Здравствуйте, Bell, Вы писали:
B>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, Sergey J. A., Вы писали:
SJA>>>Вообще-то в конечный екзешник влинкивает линкер, а не вкомпиливает компилятор.
А>>Ooops... А кто тогда делает whole program optimization? Это когда информация из кучи объектников сливается в кучу, оптимизируется и затем из этого делается объектник? По-моему, как раз тот случай, когда "вкомпиливает компилятор". А>>PS. /GL для MSVC и /Qipo для ICC
B>"информация из кучи объектников" используется для дополнительной оптимизации каждого объектного файла, и количество их не меняется — никакого нового единственного объектного файла не генерируется.
В принципе у HP по моему были такие реализации которые делали единое промежуточное представление, т.е. по сути единый обьектник. По крайней мере какие то куски кода и идеи ребяты из компании Interstron приводили
Здравствуйте, Xhunter, Вы писали:
X>Можеть быть и из *.lib. Но *.lib файлы, как я подозреваю содержат информацию для связи импортируемых из *.dll функций с конечным исполняемым файлом. Но не все же функции импортируются из dll. Код некоторых линкуется прямо с кодом конечного *.exe файла. X>Или я что то недопонимаю . Хотелось бы услышать мнение эксперта
Хотя я не эксперт, но...
Либы — это статические библиотеки. Линкер из них извлекает стандартные функции и присолединяет к исполняемому файлу при статической сборке.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Xhunter, Вы писали:
X>Подскажите, их каких файлов (файлах с каким расширением) компилятор си или си++ берет код и вкомпиливает его в конечный екзешник?
исходный -> объектный -> исполняемый.
Исходный компилирует компилятор и получает объектный файл (или неколько), потом объектные файлы попадают на вход линкеру, который еще и из статических библиотек файлы извлекает, и он делает exe. Это при статической сборке.
Или линкер может сделать dll.
Или линкер может сделать exe, в котором ты используешь другую dll — при динамическом связывании.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Xhunter, Вы писали:
X>Подскажите, их каких файлов (файлах с каким расширением) компилятор си или си++ берет код и вкомпиливает его в конечный екзешник?