![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
loh |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Значит такое дело:
Есть программа, писал в винде на qt4, надо перенести на линукс (мсвс) где этого qt4 нет. На эту мсвс ничего устанавливать нельзя. Есть более новый мсвс (на том же ядре), с нужной версией, туда перенести удалось. Также удалось статически слинковать qt, но теперь при переносе на ранюю версию возникают ошибки по другим библиотекам динамическим — libstdc, libgcc и прочие зависимости. Вопрос: как собрать программу со статической линковкой всех библиотек, а не только qt, или есть ли вариант как в винде просто перетащить все динамические библиотеки в папку с программой и сказать что бы линковалась из папки? |
|
|
![]() |
Iron Bug |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
статическая линковка glibc не всегда возможна. то есть, возможна, но если его собрать вручную, без некоторых компонентов (там сетевые какие-то вещи нельзя в статику засунуть и ещё что-то). детальнее можно почитать тут, например.
а так, если эти компоненты не используются, то флаг -static заставляет компилятор линковать всё, что можно, статически. и тогда нужно писать вручную все отдельные линуемые библиотеки. Сообщение отредактировал Iron Bug - 1.5.2012, 22:08 |
|
|
loh |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
статическая линковка glibc не всегда возможна. то есть, возможна, но если его собрать вручную, без некоторых компонентов (там сетевые какие-то вещи нельзя в статику засунуть и ещё что-то). детальнее можно почитать тут, например. а так, если эти компоненты не используются, то флаг -static заставляет компилятор линковать всё, что можно, статически. и тогда нужно писать вручную все отдельные линуемые библиотеки. ну а как нибудь как dll ку в винде просто подцепить с собой libc.so.6 можно? или она сама с кучей зависимостей будет? -Wl,rpath,. использовать чтобы эту библиотеку в папке с приложением искала прога? |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 5.5.2025, 18:16 |