[20] языка C процесс связывания записи обучения

проблема

Каждый источник языка C проект целевого файла производства файл компилируется, как эти файлы для создания исполняемых программ?

Linker смысл:

Главная роль компоновщика состоит в том, чтобы ссылаться друг на друг между соответствующими частями модуля ручки, таким образом, что модуль способен обеспечить сцепление между ними.

Статические ссылки

По линкера при компоновке библиотеки контента непосредственно в исполняемую программу.

В Linux для создания и использования статических библиотек:

1) составить статическую библиотеку Источник: НКУ -o -c lib.c lib.o   (целевой файл)

2) генерируют статические файлы библиотек: Ar -q lib.a lib.o     (упакованы)

3) Используйте статическую библиотеку компилятора: НКУ main.c lib.a -o main.out (lib.a эквивалент пакета файлов, называется статической библиотеки)

Динамически подключаемая (DLL, а затем найти время выполнения контента)

1) исполняемый во время выполнения динамической компоновки библиотеки нагрузки;

2) содержание библиотеки в исполняемую программу, которая не будет.

sub1 и sub2 динамическая библиотека подвергается (полезная часть) говорит компилятор может обеспечить содержание

В Linux создания и использования динамических библиотек:

1) составление динамической библиотеки Источник: НКУ -shared -o dlib.c dlib.so   (целевой файл)

2) динамические библиотеки для компиляции: GCC main.c -o -ldl main.out

3) ключ системного вызова:

       а> dlopen: Открытые динамические библиотеки файлов

       б> dlsym: найти вызов динамической функции библиотеки и обратный адрес

       с> dlclose: Закрыть динамические файлы библиотеки

 

Краткое описание:

1) относится к назначению ссылки на файл окончательной ссылки на исполняемую программу;

2) в зависимости от режима соединения, процесс связывания можно разделить на:

       а> Статическая ссылка: прямые объектные файлы ссылки в исполняемую программу; (для небольших программ)

       b> 动态链接:在程序启动后才动态加载目标文件;(部分更新应用程序)

рекомендация

отblog.csdn.net/haibing_x/article/details/94591377