Главная страница


ru.unix

 
 - RU.UNIX ----------------------------------------------------------------------
 From : Valentin Nechayev                    2:5020/400     29 Aug 2000  13:16:03
 To : Vsevolod Melnikov
 Subject : Re: C++ и разные UNIX-ы
 -------------------------------------------------------------------------------- 
 
         Hello Vsevolod Melnikov!
 
 VM> Первое.  В исходниках употреблялась функция strsep. Под Linux и FreeBSD оно
 VM> скомпилялось, под Solaris - нет. Пришлось менять руками на strtok. При этом
 VM> gcc на всех трех платформах примерно одной версии - 2.9.что-то_еще. Вопрос:
 VM> почему на солярке про эту функцию компилятор не знал, а на фре и линуксе - 
 VM> знал? Откуда вообще сакральное знание об этой функции берется и куда
 VM> девается?
 
 Для того, чтобы функцию использовать, нужно
 1) чтобы она была объявлена в каком-то хедере, прямо или косвенно указанном
 в исходном файле
 2) была в библиотеке
 
 strsep - не входит как минимум в старые стандарты Си и является расширением,
 введенным, вероятно, в BSD, и принятым в linux libc.
 
 VM> Второе. Следующий очевидный вопрос - нельзя ли в подобных случаях не руками
 VM> исправлять исходники, а делать это автоматически или хотя бы
 VM> полуавтоматически? Может ли помочь в этом какой-нибудь софт типа Autoconf?
 VM> Или что-то еще?
 
 Может. Hо надо знать, какие особенности есть у каких платформ - что есть,
 чего нету, что как реализовано. autoconf поможет этому только в простейших
 случаях. Если нужно более конкретное знание - возьми configure.in из поставки
 хотя бы следующих пакетов: tin, ucd-snmp, screen, ssh1, ssh2 (оба финские) -
 там очень много разных существенных проверок, так что глаза разбегутся.
 Если не хочешь этим путем, тогда делай итеративно - как пришлют багрепорт
 "у нас не собирается", требуй манов и пиши затычки.
 
 VM> Третье. При компиляции под разными платформами мне пришлось немного править
 VM> параметры опций -l в строке запуска gcc. Линукс, напрмимер, хотел, чтобы был
 VM> -lnsl, а солярка прекрасно обходилась без этого, зато требовала еще что-то
 VM> свое для сокетов. Вопрос тот же. А здесь компиляцию можно каким-либо софтом
 VM> автоматизировать? Чтобы, скажем, имея отлаженные исходникик под Linux не
 VM> ковыряться с переносом на каждой новой платформе. Хотя и не особо сложно,
 VM> но выглядит как-то несерьезно. 
 
 Думаю, что никак. Можешь только взять готовый чужой опыт переноса.
 Кроме приведенных выше примеров на autoconf, можно смотреть продукты,
 где проверяется выдача команды uname. Почему-то так почти все MTA строятся -
 посмотри на exim, sendmail и postfix.
 /netch
 --- ifmail v.2.15dev5
  * Origin: Lucky Netch Incorporated (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 C++ и разные UNIX-ы   Vsevolod Melnikov   28 Aug 2000 22:54:14 
 Re: C++ и разные UNIX-ы   Valentin Nechayev   29 Aug 2000 13:16:03 
 Re: C++ и разные UNIX-ы   Vsevolod Melnikov   30 Aug 2000 10:59:44 
 Re: C++ и разные UNIX-ы   Valentin Nechayev   30 Aug 2000 13:41:09 
 C++ и разные UNIX-ы   Max Khon   29 Aug 2000 12:59:08 
 C++ и разные UNIX-ы   Valery Gruzdev   29 Aug 2000 20:06:08 
 Re: C++ и разные UNIX-ы   Eugene Crosser   30 Aug 2000 09:14:15 
 Re: C++ и разные UNIX-ы   Vsevolod Melnikov   30 Aug 2000 10:59:44 
 Re: C++ и разные UNIX-ы   Valentin Nechayev   30 Aug 2000 13:34:23 
Архивное /ru.unix/203287d658e60.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional