LINUX.ORG.RU

Как на Линукс 32 бит кмпилировать C++ для запуска на Линукс 64 бит?

 ,


0

4

у меня ноутбук, на котором 64 линукс работал очень медленно и я поставил 32 линукс и стало лучше.

на хостинге стоит 64 линукс и я хочу там запускать cgi c++. они не работают ни через браузер ни в баше, потому что я комплирую на своей архитектуре, а на хостинге он пишет:

cannot execute binary file: exec format error

как мне откомпилировать для 64 линукса на своем 32?

такая строка не работает:

g++ -m64 -o output64 helloworld.cpp



Последнее исправление: gini (всего исправлений: 1)

Какой проц на буке, какой на хостинге?

anonymous
()

Как именно не работает -m64? Что пишет?

anonymous
()

Для этого нужен кросскомпилер.

anonymous
()

Установи кросс-компилятор, дистрибутивно-специфичные инструкции нагуглить нетрудно.

Deleted
()

пишет так:

$ LANG=c g++ -m64 -o output64 helloworld.cpp

helloworld.cpp:1:0: sorry, unimplemented: 64-bit mode not compiled in

#include

^

у меня 4ядерный проц такой:

$ cat /proc/cpuinfo

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 55
model name	: Intel(R) Pentium(R) CPU  N3530  @ 2.16GHz
stepping	: 8
microcode	: 0x809
cpu MHz		: 499.741
cache size	: 1024 KB
....
address sizes	: 36 bits physical, 48 bits virtual

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 55
model name	: Intel(R) Pentium(R) CPU  N3530  @ 2.16GHz
stepping	: 8
microcode	: 0x809
cpu MHz		: 499.741
cache size	: 1024 KB
......

а на хостинге 40ядерный такой:

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 62
model name	: Intel(R) Xeon(R) CPU E5-2690 v2 @ 3.00GHz
stepping	: 4
microcode	: 0x416
cpu MHz		: 3000.201
cache size	: 25600 KB
physical id	: 0
siblings	: 20
core id		: 0
cpu cores	: 10
apicid		: 0
initial apicid	: 0
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 syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt
bugs		:
bogomips	: 6002.41
clflush size	: 64
cache_alignment	: 64
address sizes	: 46 bits physical, 48 bits virtual
power management:
....

как выбрать кросс-компилятор я не понял тут http://wiki.osdev.org/GCC_Cross-Compiler

и как использовать директивы кросс-компиляции gcc на линукс я тоже не понял тутт http://dmilvdv.narod.ru/Translate/ELSDD/elsdd_cross-compiling_using_configure...

а это вообще очень много команд непонятно какую выбрать http://vovanium.ru/cifra/kross-kompiljacija

gini
() автор топика
Ответ на: комментарий от anonymous

ПРОБОВАЛ на федоре

 sudo dnf install g++-multilib
Last metadata expiration check performed 0:00:58 ago on Fri Oct 23 06:42:22 2015.
Пакета с названием g++-multilib не найдено.
Ошибка: no package matched: g++-multilib

как не качая ставить https://packages.debian.org/sid/g -multilib я еще не умею

gini
() автор топика
Ответ на: комментарий от anonymous

один пакет поставился а второй нет

sudo dnf install glibc-devel.x86-64 libstdc++-devel.x86-64
Last metadata expiration check performed 0:02:43 ago on Fri Oct 23 17:07:24 2015.
Пакета с названием glibc-devel.x86-64 не найдено.
Ошибка: no package matched: glibc-devel.x86-64

я нашел что надо апгрейдить glibc-common https://www.redhat.com/archives/rhl-beta-list/2007-August/msg00224.html

но после успешного выполнения команды

sudo dnf upgrade glibc-common

повторный запуск установки пакетов все равно привел к той же ошибке - нет такого пакета glibc-devel.x86-64

gini
() автор топика
Ответ на: комментарий от gini

компиляция мой программы под 64 проц тоже не проходит как и раньше.

gini
() автор топика
Ответ на: комментарий от anonymous

ладно. я тоже так думаю. просто надо попробовать. это наверное с дистром было связано. а федора 64 может быть нормально пойдет.

но если честно, мне кажется, что интел не прет 64. и в этом весь интел

gini
() автор топика
Ответ на: комментарий от gini

Не защищаю интел, но ты неграмотную фигню написал.

anonymous
()

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

Aswed ★★★★★
()
Ответ на: комментарий от devl547

банальная эрудиция, подкрепленная опытом

gini
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.