Не так давно я установил Debian и настроил его с помощью моего друга.
Вчера я скачал GCC 4.4 и создал простую программу для его тестирования.
Это код:
#include <stdio.h>
int main () {
int result;
printf ("Hello Wor... Linux! This is my %dst program compiled in Debian.\nHow many is 2+2?\n", 1);
scanf ("%d", &result);
while (result!=4) {
printf ("Oh no! You're not going anywhere until you type the correct result! 2+2 is?\n");
scanf ("%d", &result);
}
printf ("Congrats!\n");
return 0;
}
Я скомпилировал его, набрав gcc-4.4 myfile.c
в bash.Затем я попытался запустить полученный двоичный файл, и он работал так, как я хотел.Затем я отправил двоичный файл своему другу, чтобы проверить его на своем ПК.Когда он попытался запустить его, он получил сообщение об ошибке сегментации, и программа не работала.
Он также использует Debian, и версия его ядра очень похожа на мою (2.6.32-5-686
).Единственное отличие состоит в том, что его ядро - amd-64 (у него 64-битный процессор, а у меня 32-битное).
Почему это происходит?Означает ли это, что 64-битные пользователи Linux не смогут запускать мои 32-битные программы?Если да, могу ли я скомпилировать его так, чтобы они могли его запустить?
Обратите внимание, что я не очень разбираюсь в Linux.