(объектные/исполняемые модули, библиотеки).

advertisement
Лекции 2, 3
11 сентября 2015 г.
main.
cpp
ex1.
cpp
ex2.
cpp
…
exN.
cpp
Делает преобразования кода на
лексическом (текстовом) уровне.
препроцессор
Транслирует код с языка C/C++ в
машинный код, сохраняя результат
трансляции в объектных файлах.
компилятор
внешние статические библиотеки
win.
lib
stdio.
lib
…
math.
lib
main.
obj
ex1.
obj
ex2.
obj
…
exN.
obj
Собирает результирующий файл из
множества объектных и (возможно)
внешних библиотек.
компоновщик
(редактор связей)
ИЛИ
ИЛИ
main.
exe
main.
lib
main.
dll
исполнимый файл
статическая
библиотека
динамическая
библиотека
main.
cpp
ex1.
cpp
ex2.
cpp
…
exN.
cpp
Делает преобразования кода на
лексическом (текстовом) уровне.
препроцессор
Транслирует код с языка C/C++ в
машинный код, сохраняя результат
трансляции в объектных файлах.
компилятор
внешние статические библиотеки
win.
lib
stdio.
lib
…
math.
lib
main.
obj
ex1.
obj
ex2.
obj
…
exN.
obj
Собирает результирующий файл из
множества объектных и (возможно)
внешних библиотек.
компоновщик
(редактор связей)
ИЛИ
ИЛИ
main.
exe
main.
lib
main.
dll
исполнимый файл
статическая
библиотека
динамическая
библиотека
factorial.cpp
int factorial(int n){
компилятор
if (n < 0){ return 0; }
if (n <= 1) {return n; }
return n * factorial(n - 1);
}
factorial.obj
int factorial(int n);
mylib.lib
компоновщик
bool prime(int n);
prime.cpp
bool prime(int n){
int i = 2;
while (i < n){
if (n % i == 0) return 0;
i = i + 1;
}
return true;
}
int factorial(int n);
prime.obj
компилятор
bool prime(int n);
main.exe
main.cpp
int main(){
int a = factorial(5);
cout << a << endl;
return true;
}
main.obj
компилятор
компоновщик
int main();
int factorial();
int main();
int factorial(int n);
factorial.cpp
int factorial(int n){
компилятор
if (n < 0){ return 0; }
if (n <= 1) {return n; }
return n * factorial(n - 1);
}
factorial.obj
int factorial(int n);
mylib.lib
компоновщик
bool prime(int n);
prime.cpp
bool prime(int n){
int i = 2;
while (i < n){
if (n % i == 0) return 0;
i = i + 1;
}
return true;
}
int factorial(int n);
prime.obj
компилятор
bool prime(int n);
main.exe
main.cpp
int main(){
int a = factorial(5);
cout << a << endl;
int b = prime(7);
cout << b << endl;
return true;
}
main.obj
компилятор
компоновщик
int main();
int factorial();
bool prime();
int main();
int factorial(int n);
bool prime();
factorial.cpp
int factorial(int n){
компилятор
if (n < 0){ return 0; }
if (n <= 1) {return n; }
return n * factorial(n - 1);
}
factorial.obj
int factorial(int n);
mylib.dll
компоновщик
bool prime(int n);
prime.cpp
bool prime(int n){
int i = 2;
while (i < n){
if (n % i == 0) return 0;
i = i + 1;
}
return true;
}
prime.obj
компилятор
main.cpp
int main(){
int a = factorial(5);
cout << a << endl;
int b = prime(7);
cout << b << endl;
return true;
}
int factorial(int n);
bool prime(int n);
main.exe
main.obj
компилятор
компоновщик
int main();
int main();
int factorial();
int factorial();
bool prime();
bool prime();
main.
cpp
ex1.
cpp
ex2.
cpp
…
exN.
cpp
Делает преобразования кода на
лексическом (текстовом) уровне.
препроцессор
Транслирует код с языка C/C++ в
машинный код, сохраняя результат
трансляции в объектных файлах.
компилятор
внешние статические библиотеки
win.
lib
stdio.
lib
…
math.
lib
main.
obj
ex1.
obj
ex2.
obj
…
exN.
obj
Собирает результирующий файл из
множества объектных и (возможно)
внешних библиотек.
компоновщик
(редактор связей)
ИЛИ
ИЛИ
main.
exe
main.
lib
main.
dll
исполнимый файл
статическая
библиотека
динамическая
библиотека
Download