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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
#1

Первый вопрос из книги вильямса:Что такое компоновка - C++

13.11.2009, 21:32. Просмотров 2210. Ответов 5
Метки нет (Все метки)

что такое компоновка?Я читал в кyиге и понял что компоновка превращает файл срр в obj, так?тогда что такое obj, и почему сразу не cjздать файл *exe?

Добавлено через 24 минуты
и еще у меня вопросик,в чем разница между интерпретатором и компилятором?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2009, 21:32     Первый вопрос из книги вильямса:Что такое компоновка
Посмотрите здесь:

Вопрос: что такое ключ в списках? - C++
Вопрос: что такое ключ в списках? Код из литературы: Функции вставки и удаления элемента в односвязном списке. /*Функция вставки...

Первый вопрос о C++ =) - C++
Привет всем форумчанам! Я занялся изучением программирования на C++. И вот появился первый вопрос! Значит так! Скачал я среду Dev...

Шифр Вильямса - C++
Здравствуйте. Такой вопрос - слышал ли кто что-нибудь о шифровании методом Вильямса? Препод задал написать программу, которая будет...

Что такое треды? - C++
Товарищи, объясните мне, пожалуйста, на пальцах что такое треды и покажите пример с их использованием, если не сложно. :)

Что такое nan? - C++
Собственно вопрос: что такое nan? Допустим v=2 #include<iostream> #include<cmath> using namespace std; int main() { ...

Что такое основы c++? - C++
Точнее, я более-менее понимаю что это, но все же... Хотелось бы узнать очень подробно что туда входит. Что бы я мог твердо сказать: "Я...

Что такое функтор - C++
Доброе утро, верное ли данное утверждение: Я считаю, что нет. (1) Код ниже - в местах где принимается абстракция по...

Что такое фреймворк? - C++
Я так понимаю что фреймворк - это платформа, которую нужно устанавливать в систему для того чтобы можно было писать приложения при помощи...

Что такое mod в с++ ? - C++
что такое mod в с++ и как он работает? например, m=12*17^9 mod 23. (m должно получиться 15)

Что такое композиция ? - C++
Читаю учебник Р.Лафоре "Объектно-ориентированное программирование в C++". На странице 403 пишется про композицию. Пример не приводится....

Что же это такое ? - C++
подскажите что это такое: int (**myint)(); myint = &address; // address это Dll+0x00C060 SendPing((int)&myint); ...

Что такое int* - C++
Если с этим int a=3,*p = &a; понятно, то есть переменная "p" содержит адресс переменной "a" и указывает на тип int, то с этим не очень...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт CАвтор FAQ
17469 / 5707 / 362
Регистрация: 30.03.2009
Сообщений: 15,669
Записей в блоге: 26
14.11.2009, 00:38     Первый вопрос из книги вильямса:Что такое компоновка #2
Цитата Сообщение от МедведЪ Посмотреть сообщение
превращает файл срр в ob
Этот процесс более правильно называется "трансляция", хотя зачастую термин "компиляция" употребляют именно для этого

Файл obj - это файл с кодом, но в котором ещё неизвестны адреса глобальных переменных и функций. Допустим, ты написал код по вызову printf'а, но самой процедуры printf у тебя в коде нет. В объектном файле построится код, где для вызова printf будет стоять операция call, но втом месте, где должен быть адрес printf останется дырка (т.е. нули в нужном количестве) и специальным образом это дырка подсвечивается типа "вот в таком-то месте должен стоять адрес printf". Эта дырка называется relocation (по русски переводят вроде как "перемещение").

Библиотеку на начальном этапе можешь тоже считать как объектный файл. Далее, когда тебе нужно получить исполняемую программу, запускается процесс линковки ("связывания", "компоновки"). В линковку подаются все объектные файлы и библиотеки. Линкер из всех этих файлов лепит исполняемый файл с кодом. Теперь, когда код имеется весь, линкер вычисляет для каждой переменной и функции её адрес, смотрит во всех местах relocation'ы и в нужные места прописывает правильный адрес. Таким образом у тебя получается финальный код, где всё связано друг с другом по адресам.

Но вот на пальцах будет примерно так.

Компилятору на вход подаётся программа на языке, а на выходе получается исполняемый файл, готовый к работе. Интерпретатор на выходе ничего не получает, он простоходит по файлу и по очереди исполняет каждую инструкцию языка. Грубо говоря, если поставлена задача "прочитать текстовый файл и для каждой строки напечатать её длину" то это в какой-то степени вырожденный случай интерпретации. Для каждого исполнения ты запускаешь свою программу (которая выполняет роль интерпретатора) и подаёшь ей на вход текстовый файл (который выполняет роль текста программы)
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
14.11.2009, 09:09  [ТС]     Первый вопрос из книги вильямса:Что такое компоновка #3
Цитата Сообщение от Evg Посмотреть сообщение
Грубо говоря, если поставлена задача "прочитать текстовый файл
может это как то глупо,но может это build?просто проверяет код
Evg
Эксперт CАвтор FAQ
17469 / 5707 / 362
Регистрация: 30.03.2009
Сообщений: 15,669
Записей в блоге: 26
14.11.2009, 11:32     Первый вопрос из книги вильямса:Что такое компоновка #4
"это" это что?
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
14.11.2009, 12:05  [ТС]     Первый вопрос из книги вильямса:Что такое компоновка #5
Цитата Сообщение от Evg Посмотреть сообщение
это" это что?
то что я процитировал

Добавлено через 50 секунд
интерпретатор нужен для того что бы грубо говоря прочитать текстовой файл,я и говорю,это Build?
Evg
Эксперт CАвтор FAQ
17469 / 5707 / 362
Регистрация: 30.03.2009
Сообщений: 15,669
Записей в блоге: 26
14.11.2009, 12:14     Первый вопрос из книги вильямса:Что такое компоновка #6
Нет. Built - это процесс компиляции (т.е. преобразование исходника в самостоятельный бинарный файл). Дальше твой бинарный файл будет работать без компилятора и без исходника - т.е. действительно самостоятельный исполняемый файл

Чтобы запустить что-то на интерпретаторе, тебе всегда нужно иметь рядом саму программу-интерпретатор
Yandex
Объявления
14.11.2009, 12:14     Первый вопрос из книги вильямса:Что такое компоновка
Ответ Создать тему
Опции темы

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