Статические / динамические библиотеки против .so библиотек? - PullRequest
2 голосов
/ 10 июня 2011

Я пришел из Windows с Visual Studio для нативной разработки и сейчас собираюсь скомпилировать нативный код для использования на Android.

Я не уверен, как работают unix-подобные библиотеки (.so?).Являются ли они статическими (как .lib в Windows) или динамически загружаются как DLL?Например, в Visual Studio я добавляю файл .lib в свой проект для компиляции, а затем загружаю .dll во время выполнения.Что такое эквивалент в Unix-материале, скажем, с помощью GCC?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 10 июня 2011

В Linux файлы .so - это эквивалент (*) файлов .dll в Windows в том смысле, что они динамически загружаются в исполняемый файл при его запуске. Однако обратите внимание, что вам не нужен файл .lib при компоновке вашего приложения. Компоновщик найдет информацию непосредственно в файле .so.

*: есть различия.

1 голос
/ 10 июня 2011

Во-первых, вы должны прочитать страницу Статических, общих динамических и загружаемых библиотек Linux .

Это должно прояснить несколько ваших вопросов. На этой странице есть примеры исходного кода, которые хороши для начинающих.

Другая интересная ссылка - Написание DLL для приложений Linux .

0 голосов
/ 10 июня 2011

.so файлы в Linux действуют так же, как .dll в Windows и .dylib в Mac OSX.

...