crossplatform.ru

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

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


Студент
*

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

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




Репутация:   0  


Да с qt то проблемы отпали..

А где взять нормальный образ ред хат 6.2 или какой нибудь другой, что бы в нём можно было собирать всё статически?..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ssoft
  опции профиля:
сообщение 19.4.2012, 16:59
Сообщение #12


Участник
**

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

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




Репутация:   3  


Цитата(loh @ 18.4.2012, 12:50) *
Вопрос: как собрать программу со статической линковкой всех библиотек, а не только qt, или есть ли вариант как в винде просто перетащить все динамические библиотеки в папку с программой и сказать что бы линковалась из папки?


Мы поступали примерно так.

Собирали Qt необходимой версии на целевой платформе из исходников.
Если для Qt нельзя сделать make install (корректно установить Qt), то просто копировали все динамические библиотеки Qt в папку с программой.

Чтобы программа запускалась с локальными либами, необходимо задать значение для переменной окружения.
Обычно прописывали внутри .bash_profile

export LD_LIBRARY_PATH=./


Все запускалось и работало.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
loh
  опции профиля:
сообщение 19.4.2012, 17:10
Сообщение #13


Студент
*

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

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




Репутация:   0  


Так с локальными же не запустится :о ? Надо все динамические библиотеки скопировать с системы где собрана программа?

Так с локальными же не запустится :о ? Надо все динамические библиотеки скопировать с системы где собрана программа?

Так с локальными же не запустится :о ? Надо все динамические библиотеки скопировать с системы где собрана программа?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 19.4.2012, 22:22
Сообщение #14





Гости








    


Собери Qt на той версии MCBC на которой нужно развернуть, сделай ей install в кастомную дирректорию, собери rpm(не обязательно, но так будет удобней), разверни rmp на девелоперской машине, если потребуется установи на девелоперской машине пакеты gcc из дистрибутива интересующей тебя версии(те с которыми компилилась Qt), и собирай билд для более старой версии с этим тул сетом, кстати QtCreator можно настраивать так что бы он собирал сразу несколько билдов разными тулсетами.
Проверялось при разработке на MCBC 3,x и 4.RC2(или 2.х и 3.RC2 точно не помню)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
loh
  опции профиля:
сообщение 19.4.2012, 23:35
Сообщение #15


Студент
*

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

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




Репутация:   0  


с самого начала пробовал, но чето не захотел qt там собираться, надо ещё попробовать...

короче что нибудь из предложенного попробую всем спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
loh
  опции профиля:
сообщение 21.4.2012, 12:03
Сообщение #16


Студент
*

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

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




Репутация:   0  


Цитата(ssoft @ 19.4.2012, 17:59) *
Цитата(loh @ 18.4.2012, 12:50) *
Вопрос: как собрать программу со статической линковкой всех библиотек, а не только qt, или есть ли вариант как в винде просто перетащить все динамические библиотеки в папку с программой и сказать что бы линковалась из папки?


Мы поступали примерно так.

Собирали Qt необходимой версии на целевой платформе из исходников.
Если для Qt нельзя сделать make install (корректно установить Qt), то просто копировали все динамические библиотеки Qt в папку с программой.

Чтобы программа запускалась с локальными либами, необходимо задать значение для переменной окружения.
Обычно прописывали внутри .bash_profile

export LD_LIBRARY_PATH=./


Все запускалось и работало.

на целевой платформе gcc 2.95 и qt не ставится =\
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 21.4.2012, 16:19
Сообщение #17





Гости








    


В мсвс свои версии большинства продуктов, посмотри вывод gcc --version, кстати в поставке обычно идет 2 комплекта
gcc разных версий, один из которых по умолчанию не присутствует на путях вообще, где лежит к сожалению не помню либы лежат вроде в (/usr/local/версия gcc/lib).
Qt до 4.7.x включительно я собственно-ручно собирал на всех версиях мсвс которые мне попадались в руки, собираются они не всегда гладко, но собираются. Есть кстати один маленький трюк который по неведомым для меня причинам обычно позволяет повысить "собираемость" Qt: в spec файле используемым для сборки под Linux заменить g++ на gcc(кстати если потом с таким же изменением собирать проекты, то неожиданно под мсвс начинают корректно работать исключения). Обычно для сборки Qt на мсвс оказывается достаточно небольших изменений в spec файле и правильной настройки путей, на более новый gcc, хотя как мне кажется, если поковыряться то можно и со старой версией gcc собрать.
Если ты не ограничен сертифицированными продуктами, то можешь просто собрать новую версию gcc с которой Qt соберется вообще без проблем. И распостранять бинарики этого gcc и Qt собранной им в виде rpm.
Если мсвс приобретенна легально, так же можно обратится в вниинс, они как бэ обязуются предоставлять поддержку, правда ребята они долгие.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
loh
  опции профиля:
сообщение 21.4.2012, 21:08
Сообщение #18


Студент
*

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

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




Репутация:   0  


да вроде поставил gcc поновее все равно ошибку выдает, бесит линукс :(

вот gcc -v был 2.95, ща 3.3 все равно не собирается, может gcc криво собрал..

сейчас хочу поставить федору 12, на ней собрать статически и перекинуть на исходную мсвс, это получится?

короче надо на голую мсвс3 r12 поставить программу написанную на qt>4.5 а как и где собрать её - без разницы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
loh
  опции профиля:
сообщение 24.4.2012, 0:01
Сообщение #19


Студент
*

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

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




Репутация:   0  


а есть вообще какой нибудь дистрибутив линукс со всеми библиотеками в статике?

Цитата(Гость @ 19.4.2012, 23:22) *
Собери Qt на той версии MCBC на которой нужно развернуть
даже congigure не идет, нужен libstdc++.so.6, а там только 3
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 24.4.2012, 12:37
Сообщение #20


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

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

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




Репутация:   12  


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

целиком собрать весь тулкит и все библиотеки - это надо месяц мозг парить и воевать с настройками.
проще собрать полностью цельный бинарник без внешних линков или с линками только на локальный каталог и попробовать запустить на целевой оси. это сработает, если кернелы на рабочей и целевой машине идентичны.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.11.2024, 10:43