Имеется одноплатный x86 компьютер Advantech PCM-9375 с установленой AdvLinux(Fedora Core 3) с ядром 2.6. Делаю любую простую программу на десктопе с FedoraCore 11, компилиую - на десктопе запускается. Переписываю на PCM-9375 - не работает. Пишет при запуске floating-point exception. Как быть?
>Имеется одноплатный x86 компьютер Advantech PCM-9375 с установленой AdvLinux(Fedora Core 3) с
>ядром 2.6. Делаю любую простую программу на десктопе с FedoraCore 11,
>компилиую - на десктопе запускается. Переписываю на PCM-9375 - не работает.
>Пишет при запуске floating-point exception. Как быть?)))
Поясните пожалуйста ваше глумление. Имеется программка, например,
void main (void){
int i;
for(int i=0;i<100;i++){}
}
Собираю gcc -o hi main.c, получается бинарник hi, которому, на мой взгляд, ничего не должно помешать запуститься на другой х86 машине, но возникающее сообщение Floating point exception указывает что я что-то упустил.
Укажите пожалуйста, где я ошибся.
>Поясните пожалуйста ваше глумление. Имеется программка, например,
>void main (void){
>int i;
>for(int i=0;i<100;i++){}
>}
>Собираю gcc -o hi main.c, получается бинарник hi, которому, на мой взгляд,
>ничего не должно помешать запуститься на другой х86 машине, но возникающее
>сообщение Floating point exception указывает что я что-то упустил.
>Укажите пожалуйста, где я ошибся.Во первых: Нет такого понятия совместимость с низу в верх, есть только с верху в низ. То есть если в 11 версии запустится бинарник откомпилированный в 3 , это не значит что бинарник откомпилированный в 11 запустится в 3 .
При компиляции бинарников для другой целевой машины нужно компилировать с опциями (http://gcc.gnu.org/onlinedocs/gcc-4.4.1/gcc/Invoking-GCC.htm...) той машины , тип процессора , подключаемые библиотеки и т.д.
>[оверквотинг удален]
>>сообщение Floating point exception указывает что я что-то упустил.
>>Укажите пожалуйста, где я ошибся.
>
> Во первых: Нет такого понятия совместимость с низу в верх, есть
>только с верху в низ. То есть если в 11 версии
>запустится бинарник откомпилированный в 3 , это не значит что бинарник
>откомпилированный в 11 запустится в 3 .
> При компиляции бинарников для другой целевой машины нужно компилировать с
>опциями (http://gcc.gnu.org/onlinedocs/gcc-4.4.1/gcc/Invoking-GCC.htm...) той машины , тип процессора , подключаемые библиотеки и
>т.д.все зависит от того, какой процессор используется на SBC.. если ARM или что то еще то для него есть специальный компилятор.. вот здесь можно почитать http://linuxgazette.net/145/john1.html
>[оверквотинг удален]
>>только с верху в низ. То есть если в 11 версии
>>запустится бинарник откомпилированный в 3 , это не значит что бинарник
>>откомпилированный в 11 запустится в 3 .
>> При компиляции бинарников для другой целевой машины нужно компилировать с
>>опциями (http://gcc.gnu.org/onlinedocs/gcc-4.4.1/gcc/Invoking-GCC.htm...) той машины , тип процессора , подключаемые библиотеки и
>>т.д.
>
>все зависит от того, какой процессор используется на SBC.. если ARM или
>что то еще то для него есть специальный компилятор.. вот здесь
>можно почитать http://linuxgazette.net/145/john1.htmlВсем спасибо, заработало. Для компиляции программ для встраиваемых систем необходимо ознакомиться с FAQ на http://www.uclibc.org/.
На счет 'из 11 в 3' немного не согласен - от того что 11 ни mov-ы, ни call-ы по другому работать не станут.
"Сделай любую простую программу на одноплатном".