crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

5 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
> Перенос программы с более новой мсвс(линукс) на более старую
loh
  опции профиля:
сообщение 18.4.2012, 11:50
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 60
Регистрация: 11.5.2008
Пользователь №: 171

Спасибо сказали: 0 раз(а)




Репутация:   0  


Значит такое дело:

Есть программа, писал в винде на qt4, надо перенести на линукс (мсвс) где этого qt4 нет. На эту мсвс ничего устанавливать нельзя.

Есть более новый мсвс (на том же ядре), с нужной версией, туда перенести удалось. Также удалось статически слинковать qt, но теперь при переносе на ранюю версию возникают ошибки по другим библиотекам динамическим — libstdc, libgcc и прочие зависимости.

Вопрос: как собрать программу со статической линковкой всех библиотек, а не только qt, или есть ли вариант как в винде просто перетащить все динамические библиотеки в папку с программой и сказать что бы линковалась из папки?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
maint
  опции профиля:
сообщение 18.4.2012, 12:25
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 235
Регистрация: 3.8.2009
Из: Иркутск
Пользователь №: 982

Спасибо сказали: 28 раз(а)




Репутация:   2  


не знаю как в этом монстре, но в других дистрибутивах есть, скажем libstdc++-static. Если их установить и статически слинковать, то ничего тащить с собой не надо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
loh
  опции профиля:
сообщение 18.4.2012, 12:49
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 60
Регистрация: 11.5.2008
Пользователь №: 171

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(maint @ 18.4.2012, 13:25) *
не знаю как в этом монстре, но в других дистрибутивах есть, скажем libstdc++-static. Если их установить и статически слинковать, то ничего тащить с собой не надо

Вот я и спрашиваю как статически слинковать другие библиотеки) какие опции там

Цитата(maint @ 18.4.2012, 13:25) *
не знаю как в этом монстре, но в других дистрибутивах есть, скажем libstdc++-static. Если их установить и статически слинковать, то ничего тащить с собой не надо

ну всмысле какие флаги там в qmake прописать, или в мейке может что
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
maint
  опции профиля:
сообщение 18.4.2012, 13:20
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 235
Регистрация: 3.8.2009
Из: Иркутск
Пользователь №: 982

Спасибо сказали: 28 раз(а)




Репутация:   2  


Цитата(loh @ 18.4.2012, 18:49) *
Цитата(maint @ 18.4.2012, 13:25) *
не знаю как в этом монстре, но в других дистрибутивах есть, скажем libstdc++-static. Если их установить и статически слинковать, то ничего тащить с собой не надо

Вот я и спрашиваю как статически слинковать другие библиотеки) какие опции там

Цитата(maint @ 18.4.2012, 13:25) *
не знаю как в этом монстре, но в других дистрибутивах есть, скажем libstdc++-static. Если их установить и статически слинковать, то ничего тащить с собой не надо

ну всмысле какие флаги там в qmake прописать, или в мейке может что

ну man gcc говорит -static на линковке должно быть (LFLAGS в Makefile). Если статические библиотеки есть, подхватятся. В qmake, кажется, -config static
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
loh
  опции профиля:
сообщение 18.4.2012, 13:37
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 60
Регистрация: 11.5.2008
Пользователь №: 171

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(maint @ 18.4.2012, 14:20) *
Цитата(loh @ 18.4.2012, 18:49) *
Цитата(maint @ 18.4.2012, 13:25) *
не знаю как в этом монстре, но в других дистрибутивах есть, скажем libstdc++-static. Если их установить и статически слинковать, то ничего тащить с собой не надо

Вот я и спрашиваю как статически слинковать другие библиотеки) какие опции там

Цитата(maint @ 18.4.2012, 13:25) *
не знаю как в этом монстре, но в других дистрибутивах есть, скажем libstdc++-static. Если их установить и статически слинковать, то ничего тащить с собой не надо

ну всмысле какие флаги там в qmake прописать, или в мейке может что

ну man gcc говорит -static на линковке должно быть (LFLAGS в Makefile). Если статические библиотеки есть, подхватятся. В qmake, кажется, -config static
Как вариант эта ось совместима с redhat 6.2 — на нём можно такую штуку проделать со статической линковкой? Вообще на каком нибудь ред хат с ядром 2.4.. И какие там qt версии стоят? :о


когда LFLAGS = -static ошибку мейк выдаёт, да и поиском каких то статических библиотек кроме qt что я сам собрал нет..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
maint
  опции профиля:
сообщение 18.4.2012, 15:02
Сообщение #6


Участник
**

Группа: Участник
Сообщений: 235
Регистрация: 3.8.2009
Из: Иркутск
Пользователь №: 982

Спасибо сказали: 28 раз(а)




Репутация:   2  


Цитата(loh @ 18.4.2012, 19:37) *
Как вариант эта ось совместима с redhat 6.2 — на нём можно такую штуку проделать со статической линковкой? Вообще на каком нибудь ред хат с ядром 2.4.. И какие там qt версии стоят? :о

когда LFLAGS = -static ошибку мейк выдаёт, да и поиском каких то статических библиотек кроме qt что я сам собрал нет..

редхат 6.2 я уже не помню когда и ставил. И чего там, хоть умри не припомню. Искать тогда где то в инете статические библиотеки или знакомых. Другого путя не вижу. Можно с родного дистра посмотреть. Наверняка же какой то ftp у них болтается. Ошибку какую выдает ? cannon find -lQtCore или -lc ? Тогда просто не нашел статическую библиотеку. Я вообще делаю так qmake -config release. Потом в LFLAGS добавляю -static, если ваш вариант сборки. Обычно прокатывает. Но системы посвежее обычно

Сообщение отредактировал maint - 18.4.2012, 15:04
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
loh
  опции профиля:
сообщение 18.4.2012, 15:37
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 60
Регистрация: 11.5.2008
Пользователь №: 171

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(maint @ 18.4.2012, 15:02) *
Цитата(loh @ 18.4.2012, 19:37) *
Как вариант эта ось совместима с redhat 6.2 — на нём можно такую штуку проделать со статической линковкой? Вообще на каком нибудь ред хат с ядром 2.4.. И какие там qt версии стоят? :о

когда LFLAGS = -static ошибку мейк выдаёт, да и поиском каких то статических библиотек кроме qt что я сам собрал нет..

редхат 6.2 я уже не помню когда и ставил. И чего там, хоть умри не припомню. Искать тогда где то в инете статические библиотеки или знакомых. Другого путя не вижу. Можно с родного дистра посмотреть. Наверняка же какой то ftp у них болтается. Ошибку какую выдает ? cannon find -lQtCore или -lc ? Тогда просто не нашел статическую библиотеку. Я вообще делаю так qmake -config release. Потом в LFLAGS добавляю -static, если ваш вариант сборки. Обычно прокатывает. Но системы посвежее обычно

Не может найти -lSm

Выполнение ld завершилось с кодом возврата 1

Я в параметрах qmake прописал QMAKE_LFLAGS=-static

Вообще есть ещё более новая версия мсвс, на ядре 2.6, линукс способен переносить с ядра на другое ядро или лучше не пробовать?)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
maint
  опции профиля:
сообщение 18.4.2012, 16:17
Сообщение #8


Участник
**

Группа: Участник
Сообщений: 235
Регистрация: 3.8.2009
Из: Иркутск
Пользователь №: 982

Спасибо сказали: 28 раз(а)




Репутация:   2  


Цитата(loh @ 18.4.2012, 21:37) *
Цитата(maint @ 18.4.2012, 15:02) *
Цитата(loh @ 18.4.2012, 19:37) *
Как вариант эта ось совместима с redhat 6.2 — на нём можно такую штуку проделать со статической линковкой? Вообще на каком нибудь ред хат с ядром 2.4.. И какие там qt версии стоят? :о

когда LFLAGS = -static ошибку мейк выдаёт, да и поиском каких то статических библиотек кроме qt что я сам собрал нет..

редхат 6.2 я уже не помню когда и ставил. И чего там, хоть умри не припомню. Искать тогда где то в инете статические библиотеки или знакомых. Другого путя не вижу. Можно с родного дистра посмотреть. Наверняка же какой то ftp у них болтается. Ошибку какую выдает ? cannon find -lQtCore или -lc ? Тогда просто не нашел статическую библиотеку. Я вообще делаю так qmake -config release. Потом в LFLAGS добавляю -static, если ваш вариант сборки. Обычно прокатывает. Но системы посвежее обычно

Не может найти -lSm

Выполнение ld завершилось с кодом возврата 1

Я в параметрах qmake прописал QMAKE_LFLAGS=-static

Вообще есть ещё более новая версия мсвс, на ядре 2.6, линукс способен переносить с ядра на другое ядро или лучше не пробовать?)

если в статике, пофигу вроде. Я одну софтину с 2.4 несу уже 3, пашет. Но она без гуя. -lSm X- session manager похоже. Хотя не уверен. Трудно что то сказать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
loh
  опции профиля:
сообщение 18.4.2012, 16:40
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 60
Регистрация: 11.5.2008
Пользователь №: 171

Спасибо сказали: 0 раз(а)




Репутация:   0  


А сколько в статике будет весить например просто qmainwindow пустой?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 18.4.2012, 18:30
Сообщение #10


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


можно же не линковать библиотеки статически, а тупо сложить их в ту же папку и указать -Wl,-rpath.. правда, их в Qt может оказаться дофига.
правда, наверное, тут и саму Qt с таким же флагом собирать придётся, иначе библиотеки друг друга могут не найти.

Сообщение отредактировал Iron Bug - 18.4.2012, 18:42
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

5 страниц V   1 2 3 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 13:24