Я пытаюсь понять, как выглядит ELF для статически и динамически связанной программы.Static vs Dynamic Linking
Я понимаю, что это как статическое связывание работает:
В моем случае, у меня есть два файла, foo.c
и bar.c
. У меня также есть их объектные файлы; foo.o
и bar.o
. С командой objdump
я могу видеть перемещение в каждом файле.
Как сделать статически ссылки foo.o
и bar.o
?
Как сделать динамично ссылка foo.o
и bar.o
?
Как я могу видеть разницу в выходных файлах?
Ваш ответ немного вводит в заблуждение. Объектные файлы в командной строке компоновщика всегда связаны статически друг с другом, флаг '-static' относится только к библиотечным операндам. Было бы здорово, если бы вы могли поставить это в контексте вопроса (как связать 'foo.o' и' bar.o' ...). – fuz
В частности, ни 'main.o', ни' swap.o' не создадут динамически загруженные общие объекты. –
@FUZxxl Можете ли вы дать команду для связывания исходных файлов статически и динамически? В чем разница между связыванием исходных файлов и библиотек? –