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


ru.unix

 
 - RU.UNIX ----------------------------------------------------------------------
 From : Eugene Crosser                       2:5020/400     30 Aug 2000  09:14:15
 To : Vsevolod Melnikov
 Subject : Re: C++ и разные UNIX-ы
 -------------------------------------------------------------------------------- 
 
 In article <gn9eo8.sk.ln@stan.sevix.ru>,
         Vsevolod Melnikov <seva@edunet.ru> writes:
 
 > Имеем некоторый код на C++ (написанный не мной). Еще имеем RedHat Linux 6.2,
 > FreeBSD 4.1 и Solaris 2.6 все на одном винте на пентиуме. Экспериментирую с
 > переносимостью кода.
 > 
 > Вобщем, код с небольшими поправками я скомпилял и запустил. Интересен ряд
 > моментов.
 > 
 > Первое.  В исходниках употреблялась функция strsep. Под Linux и FreeBSD оно
 > скомпилялось, под Solaris - нет. Пришлось менять руками на strtok. При этом
 > gcc на всех трех платформах примерно одной версии - 2.9.что-то_еще. Вопрос:
 > почему на солярке про эту функцию компилятор не знал, а на фре и линуксе - 
 > знал? Откуда вообще сакральное знание об этой функции берется и куда девается?
 
 Компилятор о функциях вообще ничего не должен знать (кроме заголовка,
 который ему в #include-е подсунули).  Hа практике он про *некоторые*
 знает, но это эффект второго порядка малости.
 
 > Второе. Следующий очевидный вопрос - нельзя ли в подобных случаях не руками
 > исправлять исходники, а делать это автоматически или хотя бы
 > полуавтоматически? Может ли помочь в этом какой-нибудь софт типа Autoconf? Или
 > что-то еще?
 
 Софт типа autoconf (и automake для особо [не]ленивых) позволяет *писать*
 переносимый код.  Если код написан непереносимо, его можно исправить
 только ручками, в том числе можно переложить под autoconf.  Hо обычно
 это достаточно неслабая задача сама по себе.
 
 > Третье. При компиляции под разными платформами мне пришлось немного править
 > параметры опций -l в строке запуска gcc. Линукс, напрмимер, хотел, чтобы был
 > -lnsl, а солярка прекрасно обходилась без этого, зато требовала еще что-то
 > свое для сокетов. Вопрос тот же. А здесь компиляцию можно каким-либо софтом
 > автоматизировать? Чтобы, скажем, имея отлаженные исходникик под Linux не
 > ковыряться с переносом на каждой новой платформе. Хотя и не особо сложно,
 > но выглядит как-то несерьезно. 
 
 Об этом тоже умеет позаботиться autoconf, если грамотно составить ему
 инструкцию :)  В общем, ключевую работу все равно делает естественный
 интеллект :)
 
 Eugene
 --- ifmail v.2.15dev5
  * Origin: Average (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/169477c69cf0a.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional