Подтвердить что ты не робот

В Linux, как я могу определить, привязан ли я к статической или динамической библиотеке?

У меня есть статическая и динамическая библиотека с тем же именем: libclsocket.a и libclsocket.so Когда я указываю, какую библиотеку я хочу связать, я просто ввожу -lclsocket в качестве библиотеки. Моя программа соответствует и работает отлично, но какую библиотеку я использую? статическая библиотека или динамическая библиотека? Я хочу дать моему другу свою программу, и я не уверен. Если мне нужно включить библиотеки в релиз. С++, codelite, pcLinuxOS 2010

4b9b3361

Ответ 1

Вы можете попробовать запустить ldd в исполняемом файле и посмотреть, будет ли обнаружено сопровождающее .so, как требуется в списке зависимостей.

Страница ldd man здесь.

Ответ 2

Если вы используете флаг -static, все компоненты будут сделаны статическими. И -l может включать разделяемые библиотеки. Таким образом, указание имени файла статической библиотеки (например, /usr/lib/libfoo.a, например, -l preended), должно получить желаемый эффект.