LinuxForum.Fans
Тема

Компиляция Qt проекта на разные машины.

Автор: shuric80 19 сообщений 3690 просмотров
#366137

Доброе утро. Такой вопрос.
Есть 2 машины. 1я десктоп и 2-я рабочая. На десктопе пишется проект , а работать он будет на 2й. Но тот выполняемый файл, что получается на 1 м , на 2 й машине не работает. Приходится перетаскивать весь проект и компилировать его на 2 й машине целиком, что есть неудобно. C какими ключами компилироваnь для переносимости? Использую qmake.

На 1 й и 2 й машине стоят Убунты. версии 13.10 и 10.04. Думаю тут дело в железе самом.
cat /proc/cpuinfo 1 й машины.

text

~$ cat /proc/cpuinfo 
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 42
model name      : Intel(R) Core(TM) i5-2310 CPU @ 2.90GHz
stepping        : 7
microcode       : 0x14
cpu MHz         : 1600.000
cache size      : 6144 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
bogomips        : 5786.83
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 42 model name : Intel(R) Core(TM) i5-2310 CPU @ 2.90GHz stepping : 7 microcode : 0x14 cpu MHz : 1600.000 cache size : 6144 KB physical id : 0 siblings : 4 core id : 1 cpu cores : 4 apicid : 2 initial apicid : 2 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid bogomips : 5786.83 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:

processor : 2 vendor_id : GenuineIntel cpu family : 6 model : 42 model name : Intel(R) Core(TM) i5-2310 CPU @ 2.90GHz stepping : 7 microcode : 0x14 cpu MHz : 1600.000 cache size : 6144 KB physical id : 0 siblings : 4 core id : 2 cpu cores : 4 apicid : 4 initial apicid : 4 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid bogomips : 5786.83 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:

processor : 3 vendor_id : GenuineIntel cpu family : 6 model : 42 model name : Intel(R) Core(TM) i5-2310 CPU @ 2.90GHz stepping : 7 microcode : 0x14 cpu MHz : 1600.000 cache size : 6144 KB physical id : 0 siblings : 4 core id : 3 cpu cores : 4 apicid : 6 initial apicid : 6 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid bogomips : 5786.83 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:

вот cat /proc/icpuinfo для второй машины.

text

:~$ cat /proc/cpuinfo 
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 37
model name      : Intel(R) Core(TM) i3 CPU       E 330  @ 2.13GHz
stepping        : 5
cpu MHz         : 931.000
cache size      : 3072 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat tpr_shadow vnmi flexpriority ept vpid
bogomips        : 4266.55
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 37 model name : Intel(R) Core(TM) i3 CPU E 330 @ 2.13GHz stepping : 5 cpu MHz : 931.000 cache size : 3072 KB physical id : 0 siblings : 4 core id : 2 cpu cores : 2 apicid : 4 initial apicid : 4 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat tpr_shadow vnmi flexpriority ept vpid bogomips : 4266.53 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:

processor : 2 vendor_id : GenuineIntel cpu family : 6 model : 37 model name : Intel(R) Core(TM) i3 CPU E 330 @ 2.13GHz stepping : 5 cpu MHz : 931.000 cache size : 3072 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 2 apicid : 1 initial apicid : 1 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat tpr_shadow vnmi flexpriority ept vpid bogomips : 4266.53 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:

processor : 3 vendor_id : GenuineIntel cpu family : 6 model : 37 model name : Intel(R) Core(TM) i3 CPU E 330 @ 2.13GHz stepping : 5 cpu MHz : 931.000 cache size : 3072 KB physical id : 0 siblings : 4 core id : 2 cpu cores : 2 apicid : 5 initial apicid : 5 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat tpr_shadow vnmi flexpriority ept vpid bogomips : 4266.55 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:

#366138

Если исполняемый файл не работает, то он собщает, почему.
Поскольку там разные системы, то надо скомпилировать этот файл статически,
чтобы он не требовал хотя бы Qt-библиотек при выполнении.

Пётр.

#366140

Версии библиотек - не? Вообще-то Ubuntu - последнее из того, на чём стоит разрабатывать Qt

#366141

это выдал при запуске.
undefined symbol: _ZN9QListData11detach_growEPii

#366144

shuric80, ЧТД. Машины ни при чём.

P. S. И таки да, полагаю, что следовало бы взять что ни будь более адекватное Qt - Mageia, Arch, Slackware, может даже openSUSE. Ну так, в качестве предположения...

#366145

бинарная совместимость гарантируется только прямая...
установи себе старую версию кьюта (4.6.2 для 10.04) и собирай с ней... готовое вряд ли что-то будет, так что скорей всего придётся собрать самому... гуглить в сторону чего-то вроде «linux установка нескольких версий Qt в одну систему»

"stranger" написал:
Вообще-то Ubuntu - последнее из того, на чём стоит разрабатывать Qt

какая разница?

#366146

ОС и Qt -пожелание заказчика.

#366149
Fat-Zer написал:
какая разница?

Понятия не имею! Просто статистически проблем больше всего на практике.

#366150

Было время приходилось переносить так же проекты. Компилировал на одной машине, при переносе на другую машину в папку с бинарником ложил необходимые so библиотеки.

Вы же наверно поставили qt из репозиториев на обе машины и пытались перенести бинарник ?

#366153

Если на обоих компьютерах уже есть Qt и dev-файлы, то не так уж неудобно перенести проект.
Правда, я не пользуюсь средой, так что мне достаточно перенести только изменившиеся файлы.
Надо создавать исполнимый файл со статической линковкой, тогда можно надеяться,
что он будет работать на другом компьютере.

Пётр.

#366154

Юмор в том, что при переносе с тогоже десктопа на 3ю машину,она с той же системой и либами что и на 2я, все нормально запускается. У 2 и 3й разница в железе только.
2-я машина на которой незапускается это ARK-3440.
3-я машина , на которой работает ARK-3420.

#366156

qmake -project
qmake -makefile
make
если проэкт делали на qtcreator то такие сообщения могут быть как у вас

#366157

Тогда надо знать, в чём разница между этими машинами.
Я, например, вообще не знаю, что это такое.

Пётр.

#366160
"shuric80" написал:
Юмор в том, что при переносе с тогоже десктопа на 3ю машину,она с  той же системой и либами что и на 2я, все нормально запускается. У 2 и 3й разница в железе только.

Для надежности, на первой машине сделайте

text

ldd checks /путь до бинарника

Выдаст список необходимых библиотек. Проверьте их существование на второй машине.

#366164
"marikk" написал:
Выдаст список необходимых библиотек. Проверьте их существование на второй машине.

бред же... существуют они, только версии разные... иначе бы ld ругался по поводу уж точно больше, чем одного символа...

"shuric80" написал:
2-я машина на которой незапускается это ARK-3440.3-я машина , на которой работает ARK-3420.

хоть бы uname -a дал... и точные версии пакетов Qt... что такое ARK ни кто не знает...

"stranger" написал:
Понятия не имею! Просто статистически проблем больше всего на практике.

а ещё эта статистика странным образом коррелирует с показателем количества неофитов на одного пользователя на бубунте...

#366165
"Fat-Zer" написал:
ед же... существуют они, только версии разные...  иначе бы ld ругался по поводу уж точно больше, чем одного символа...

Да вы правы. Не у всех либов указана версия. Но больше всего интересовали библиотеки Qt, там она указана.

#366176
Fat-Zer написал:
[quote="stranger"]Понятия не имею! Просто статистически проблем больше всего на практике.

а ещё эта статистика странным образом коррелирует с показателем количества неофитов на одного пользователя на бубунте...[/quote]

Ну если считать неофитом меня (с версии 6.06 по 13.10), то наверное Вы имеете основания для такого мнения...

#366197

Qt для АРК ставлю одни и теже. АРК -это промышленные компьютеры.(обычные компьютеры -только с доп. обвязкой и стрессоустойчивые)
Один подключил к сети, установил все для работы. Потом папку /var/cashe/apt скопировал себе и из нее ставлю не подключаясь к сети на другие машины. что старые модели ARK-3420 что и новые ARK-3440.

#366219

Вы уверены, что либы одни и теже?
Такое сообщение (чаще всего) появляется если либа не совместима с бинарником.

Как вариант. Все либы с перого компа тащить на второй. скалдывать в каталог, например, с бинарником. И дальше запуск нечто типа такого:

text

LD_LIBRARY_PATH=<путь_к_либам>:$LD_LIBRARY_PATH <имя_бинарника>

У этого решения, вроде, были какието подводные камни или условия, я точно не помню сейчас.

Войдите или зарегистрируйтесь, чтобы ответить.