![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
loh |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Значит такое дело:
Есть программа, писал в винде на qt4, надо перенести на линукс (мсвс) где этого qt4 нет. На эту мсвс ничего устанавливать нельзя. Есть более новый мсвс (на том же ядре), с нужной версией, туда перенести удалось. Также удалось статически слинковать qt, но теперь при переносе на ранюю версию возникают ошибки по другим библиотекам динамическим — libstdc, libgcc и прочие зависимости. Вопрос: как собрать программу со статической линковкой всех библиотек, а не только qt, или есть ли вариант как в винде просто перетащить все динамические библиотеки в папку с программой и сказать что бы линковалась из папки? |
|
|
maint |
![]()
Сообщение
#2
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
не знаю как в этом монстре, но в других дистрибутивах есть, скажем libstdc++-static. Если их установить и статически слинковать, то ничего тащить с собой не надо
|
|
|
loh |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
не знаю как в этом монстре, но в других дистрибутивах есть, скажем libstdc++-static. Если их установить и статически слинковать, то ничего тащить с собой не надо Вот я и спрашиваю как статически слинковать другие библиотеки) какие опции там не знаю как в этом монстре, но в других дистрибутивах есть, скажем libstdc++-static. Если их установить и статически слинковать, то ничего тащить с собой не надо ну всмысле какие флаги там в qmake прописать, или в мейке может что |
|
|
maint |
![]()
Сообщение
#4
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
не знаю как в этом монстре, но в других дистрибутивах есть, скажем libstdc++-static. Если их установить и статически слинковать, то ничего тащить с собой не надо Вот я и спрашиваю как статически слинковать другие библиотеки) какие опции там не знаю как в этом монстре, но в других дистрибутивах есть, скажем libstdc++-static. Если их установить и статически слинковать, то ничего тащить с собой не надо ну всмысле какие флаги там в qmake прописать, или в мейке может что ну man gcc говорит -static на линковке должно быть (LFLAGS в Makefile). Если статические библиотеки есть, подхватятся. В qmake, кажется, -config static |
|
|
loh |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
не знаю как в этом монстре, но в других дистрибутивах есть, скажем libstdc++-static. Если их установить и статически слинковать, то ничего тащить с собой не надо Вот я и спрашиваю как статически слинковать другие библиотеки) какие опции там не знаю как в этом монстре, но в других дистрибутивах есть, скажем libstdc++-static. Если их установить и статически слинковать, то ничего тащить с собой не надо ну всмысле какие флаги там в qmake прописать, или в мейке может что ну man gcc говорит -static на линковке должно быть (LFLAGS в Makefile). Если статические библиотеки есть, подхватятся. В qmake, кажется, -config static когда LFLAGS = -static ошибку мейк выдаёт, да и поиском каких то статических библиотек кроме qt что я сам собрал нет.. |
|
|
maint |
![]()
Сообщение
#6
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
Как вариант эта ось совместима с 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 |
![]()
Сообщение
#7
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Как вариант эта ось совместима с 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 |
![]()
Сообщение
#8
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
Как вариант эта ось совместима с 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 |
![]()
Сообщение
#9
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
А сколько в статике будет весить например просто qmainwindow пустой?
|
|
|
Iron Bug |
![]()
Сообщение
#10
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
можно же не линковать библиотеки статически, а тупо сложить их в ту же папку и указать -Wl,-rpath.. правда, их в Qt может оказаться дофига.
правда, наверное, тут и саму Qt с таким же флагом собирать придётся, иначе библиотеки друг друга могут не найти. Сообщение отредактировал Iron Bug - 18.4.2012, 18:42 |
|
|
loh |
![]()
Сообщение
#11
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Да с qt то проблемы отпали..
А где взять нормальный образ ред хат 6.2 или какой нибудь другой, что бы в нём можно было собирать всё статически?.. |
|
|
ssoft |
![]()
Сообщение
#12
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 130 Регистрация: 17.2.2010 Из: Москва Пользователь №: 1470 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
Вопрос: как собрать программу со статической линковкой всех библиотек, а не только qt, или есть ли вариант как в винде просто перетащить все динамические библиотеки в папку с программой и сказать что бы линковалась из папки? Мы поступали примерно так. Собирали Qt необходимой версии на целевой платформе из исходников. Если для Qt нельзя сделать make install (корректно установить Qt), то просто копировали все динамические библиотеки Qt в папку с программой. Чтобы программа запускалась с локальными либами, необходимо задать значение для переменной окружения. Обычно прописывали внутри .bash_profile
Все запускалось и работало. |
|
|
loh |
![]()
Сообщение
#13
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Так с локальными же не запустится :о ? Надо все динамические библиотеки скопировать с системы где собрана программа?
Так с локальными же не запустится :о ? Надо все динамические библиотеки скопировать с системы где собрана программа? Так с локальными же не запустится :о ? Надо все динамические библиотеки скопировать с системы где собрана программа? |
|
|
Гость_Гость_* |
![]()
Сообщение
#14
|
Гости ![]() |
Собери Qt на той версии MCBC на которой нужно развернуть, сделай ей install в кастомную дирректорию, собери rpm(не обязательно, но так будет удобней), разверни rmp на девелоперской машине, если потребуется установи на девелоперской машине пакеты gcc из дистрибутива интересующей тебя версии(те с которыми компилилась Qt), и собирай билд для более старой версии с этим тул сетом, кстати QtCreator можно настраивать так что бы он собирал сразу несколько билдов разными тулсетами.
Проверялось при разработке на MCBC 3,x и 4.RC2(или 2.х и 3.RC2 точно не помню) |
|
|
loh |
![]()
Сообщение
#15
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
с самого начала пробовал, но чето не захотел qt там собираться, надо ещё попробовать...
короче что нибудь из предложенного попробую всем спасибо! |
|
|
loh |
![]()
Сообщение
#16
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Вопрос: как собрать программу со статической линковкой всех библиотек, а не только qt, или есть ли вариант как в винде просто перетащить все динамические библиотеки в папку с программой и сказать что бы линковалась из папки? Мы поступали примерно так. Собирали Qt необходимой версии на целевой платформе из исходников. Если для Qt нельзя сделать make install (корректно установить Qt), то просто копировали все динамические библиотеки Qt в папку с программой. Чтобы программа запускалась с локальными либами, необходимо задать значение для переменной окружения. Обычно прописывали внутри .bash_profile
Все запускалось и работало. на целевой платформе gcc 2.95 и qt не ставится =\ |
|
|
Гость_Гость_* |
![]()
Сообщение
#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 |
![]()
Сообщение
#18
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
да вроде поставил gcc поновее все равно ошибку выдает, бесит линукс
![]() вот gcc -v был 2.95, ща 3.3 все равно не собирается, может gcc криво собрал.. сейчас хочу поставить федору 12, на ней собрать статически и перекинуть на исходную мсвс, это получится? короче надо на голую мсвс3 r12 поставить программу написанную на qt>4.5 а как и где собрать её - без разницы |
|
|
loh |
![]()
Сообщение
#19
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Iron Bug |
![]()
Сообщение
#20
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
целиком собрать весь тулкит и все библиотеки - это надо месяц мозг парить и воевать с настройками.
проще собрать полностью цельный бинарник без внешних линков или с линками только на локальный каталог и попробовать запустить на целевой оси. это сработает, если кернелы на рабочей и целевой машине идентичны. целиком собрать весь тулкит и все библиотеки - это надо месяц мозг парить и воевать с настройками. проще собрать полностью цельный бинарник без внешних линков или с линками только на локальный каталог и попробовать запустить на целевой оси. это сработает, если кернелы на рабочей и целевой машине идентичны. |
|
|
loh |
![]()
Сообщение
#21
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
целиком собрать весь тулкит и все библиотеки - это надо месяц мозг парить и воевать с настройками. проще собрать полностью цельный бинарник без внешних линков или с линками только на локальный каталог и попробовать запустить на целевой оси. это сработает, если кернелы на рабочей и целевой машине идентичны. целиком собрать весь тулкит и все библиотеки - это надо месяц мозг парить и воевать с настройками. проще собрать полностью цельный бинарник без внешних линков или с линками только на локальный каталог и попробовать запустить на целевой оси. это сработает, если кернелы на рабочей и целевой машине идентичны. отлично, как это сделать? в винде на vs я знаю как это сделать тупо прилепить длл в папку с прогой, и она хошь на хр хошь на 7, хошь на ce будет запускаться в линуксе для qt надо миллиард зависимостей каким то раком обойти, и самый геморой - как убрать из зависимостей stdlibc++, особенно если её нифига нет в статике ( Сообщение отредактировал loh - 25.4.2012, 0:36 |
|
|
Iron Bug |
![]()
Сообщение
#22
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
я не имею дел конкретно с Qt, но общелинюксовые настройки gcc таковы:
поиск библиотек при выполнении в какой-то папке -Wl,-rpath <путь>. Например, для поиска в локальной папке -Wl,-rpath. (точка важна). статическая линковка libstdc++: -static-libstdc++ статическая линковка libgcc: -static-libgcc Сообщение отредактировал Iron Bug - 25.4.2012, 6:55 |
|
|
loh |
![]()
Сообщение
#23
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
я не имею дел конкретно с Qt, но общелинюксовые настройки gcc таковы: поиск библиотек при выполнении в какой-то папке -Wl,-rpath <путь>. Например, для поиска в локальной папке -Wl,-rpath. (точка важна). статическая линковка libstdc++: -static-libstdc++ статическая линковка libgcc: -static-libgcc как раз этим и занят, на платформе для разработки gcc 4.1.3 стоит, -static-libstdc++ поддерживается начиная с 4.5, собрал 4.5 gcc обновилась, g++ почему то нет (-v по прежнем 4.1.3), сейчас устанавливаю 4.7, может поможет... не понял почему обновилась только gcc без g++ ![]() |
|
|
maint |
![]()
Сообщение
#24
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
loh |
![]()
Сообщение
#25
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
собрал 4.5 gcc обновилась, g++ почему то нет (-v по прежнем 4.1.3), сейчас устанавливаю 4.7, может поможет... не понял почему обновилась только gcc без g++ ![]() потому что gcc и gcc-c++, как и gcc-fortran разные вещи. а где взять source для сборки gcc-c++? ![]() |
|
|
maint |
![]()
Сообщение
#26
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
собрал 4.5 gcc обновилась, g++ почему то нет (-v по прежнем 4.1.3), сейчас устанавливаю 4.7, может поможет... не понял почему обновилась только gcc без g++ ![]() потому что gcc и gcc-c++, как и gcc-fortran разные вещи. а где взять source для сборки gcc-c++? ![]() srpm то один должен быть. Во время сборки указывается., если память не изменяет, в опциях сборки. Ну а если tarball то в опциях configure |
|
|
loh |
![]()
Сообщение
#27
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
я не имею дел конкретно с Qt, но общелинюксовые настройки gcc таковы: поиск библиотек при выполнении в какой-то папке -Wl,-rpath <путь>. Например, для поиска в локальной папке -Wl,-rpath. (точка важна). статическая линковка libstdc++: -static-libstdc++ статическая линковка libgcc: -static-libgcc это параметры куда писать? у меня выдает сообщение что g++ не знаком с параметрами -static-libstdc++ -static-libgcc как сделать чтобы все библиотеки брались только из -Wl,-rpath. , чтобы я их туда накидал и архивом с программой бросил на целевую машину? (а если их там нет, то даже на машине для разработки появлялась бы ошибка) народ, покажите хотя бы как примерно мейкфайл должен выглядеть чтобы она собирал программу так, что она переносилась на любу систему ![]() |
|
|
Iron Bug |
![]()
Сообщение
#28
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
как примерно мейкфайл должен выглядеть чтобы она собирал программу так, что она переносилась на любу систему это какой-то сильно сложный автоконфиг надо городить. если хочешь в этом разбираться, копай в сторону GNU autotools. там стопицот тонн документации на эту тему. насчёт параметров GCC - читать доки на сайте GCC. правда, я не помню, с какой версии компилятора стало можно линковать статически. к тому же, сам компилятор должен быть собран с возможностью статической линковки libgcc (это к тому, если ты сам его собирать будешь), стандартный собран со статикой, как правило. кроме того, есть ещё одно ограничение на статику: если ты будешь линковать libgcc статически, то у тебя не будут работать эксепшны между динамическими библиотеками и твоей софтиной. это специфика обработки исключений. так что при статически прилинкованной libgcc если внешний модуль Qt вдруг кинет исключение, то ты его просто не увидишь. вполне вероятно, что в таких условиях Qt не будет работать нормально. |
|
|
loh |
![]()
Сообщение
#29
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
получилось слинковать g++ статически, осталось обойти зависимость от glibc - как это можно сделать?
![]() |
|
|
Iron Bug |
![]()
Сообщение
#30
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
уже десять раз написали, что -static-libgcc. но со всеми вытекающими отсюда сложностями, естественно. я вообще не знаю, можно ли с таким параметром собрать Qt. обычно это вызывает большие проблемы с взаимодействием динамических библиотек.
|
|
|
loh |
![]()
Сообщение
#31
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Iron Bug, не, я не про gcc, про glibc
на целевой машине 2.1.3, а там где собираю > 2.3 |
|
|
ViGOur |
![]()
Сообщение
#32
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
loh, как соберешь, опиши здесь как это сделал.
А то чувствуется и мне нужно будет в скором времени собирать Qt под МСВС... |
|
|
maint |
![]()
Сообщение
#33
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
loh, как соберешь, опиши здесь как это сделал. А то чувствуется и мне нужно будет в скором времени собирать Qt под МСВС... вопрос праздный. А что задачи на этого непонятного монстра есть ? Писали, я мимо ушей пропустил. Но не видел людей в восторге от системы Iron Bug, не, я не про gcc, про glibc на целевой машине 2.1.3, а там где собираю > 2.3 вот ман говорит -static-libgcc. Несложно ?Ну а дальше сами. Пардон не к вам. Но лень новый пост писать Сообщение отредактировал maint - 1.5.2012, 18:49 |
|
|
ViGOur |
![]()
Сообщение
#34
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
maint |
![]()
Сообщение
#35
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
loh |
![]()
Сообщение
#36
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
loh, как соберешь, опиши здесь как это сделал. А то чувствуется и мне нужно будет в скором времени собирать Qt под МСВС... вопрос праздный. А что задачи на этого непонятного монстра есть ? Писали, я мимо ушей пропустил. Но не видел людей в восторге от системы ![]() вот ман говорит -static-libgcc. Несложно ?Ну а дальше сами. Пардон не к вам. Но лень новый пост писать как gcc связан с glibc? -static-libgcc я уже применил по нему вопросов нет вроде ![]() loh, как соберешь, опиши здесь как это сделал. А то чувствуется и мне нужно будет в скором времени собирать Qt под МСВС... ну зависит от версии мсвс и qt.. |
|
|
ViGOur |
![]()
Сообщение
#37
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
loh |
![]()
Сообщение
#38
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Iron Bug |
![]()
Сообщение
#39
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
статическая линковка glibc не всегда возможна. то есть, возможна, но если его собрать вручную, без некоторых компонентов (там сетевые какие-то вещи нельзя в статику засунуть и ещё что-то). детальнее можно почитать тут, например.
а так, если эти компоненты не используются, то флаг -static заставляет компилятор линковать всё, что можно, статически. и тогда нужно писать вручную все отдельные линуемые библиотеки. Сообщение отредактировал Iron Bug - 1.5.2012, 22:08 |
|
|
loh |
![]()
Сообщение
#40
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
статическая линковка glibc не всегда возможна. то есть, возможна, но если его собрать вручную, без некоторых компонентов (там сетевые какие-то вещи нельзя в статику засунуть и ещё что-то). детальнее можно почитать тут, например. а так, если эти компоненты не используются, то флаг -static заставляет компилятор линковать всё, что можно, статически. и тогда нужно писать вручную все отдельные линуемые библиотеки. ну а как нибудь как dll ку в винде просто подцепить с собой libc.so.6 можно? или она сама с кучей зависимостей будет? -Wl,rpath,. использовать чтобы эту библиотеку в папке с приложением искала прога? |
|
|
Iron Bug |
![]()
Сообщение
#41
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
у этой библиотеки в стандартной сборке всегда есть внешние зависимости. а статически она не линкуется из соображений безопасности: ибо если были баги, то они могут быть внесены с цельным исполняемым кодом. теоретически, если оторвать внешние зависимости, можно слинновать статически. но на практике я такого не делала и не знаю, реально ли это провернуть. тем более, если там ещё и Qt замешана.
|
|
|
loh |
![]()
Сообщение
#42
|
Студент ![]() Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
сделаю себе напоминалочку для установки qt на мсвс 3 r12
вначале gcc 4 ставим как тут http://www.acsu.buffalo.edu/~charngda/cc_build.html :
потом qt > 4.5 как тут http://axis.bplaced.net/news/545 или тут http://www.prog.org.ru/topic_12303_0.html
Сообщение отредактировал loh - 30.10.2012, 9:14 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 17.4.2025, 10:21 |