2013-02-19 8 views
0

У меня есть код:исключения плавающей запятой с помощью функции gethostbyname в статическом связанном приложении

struct hostent *hp = gethostbyname(dns.c_str()); 

в моем приложении. Я скомпилирую его на сервере Ubuntu, связывающем все статически. Все нормально, но когда я пытаюсь запустить это приложение на CentOS у меня есть ошибки в этом gethostbyname призванию:

исключение с плавающей точкой

Можете ли вы помочь мне, как исправить это? Спасибо!

+1

Вы пробовали перекомпилировать его на CentOS? Обычно вы не передаете Linux-приложения как двоичные ... –

+0

@ bash.d, я могу перекомпилировать его, это моя клиентская машина – Breakdown

+0

Итак, я предполагаю, что в заголовочных файлах есть различия, поэтому вы, возможно, не сможете распространять вашу программу как двоичный ... –

ответ

2

статическое связывание считается вредным http://www.akkadia.org/drepper/no_static_linking.html

«все виды особенностей в LIBC (локаль (через Iconv), НСС, IDN, ...) требует динамической компоновки для загрузки соответствующего внешнего кода.»