Кроссплатформенность
Добавлено: 09.06.2008 00:09:15
Довольно давно использую FPC в своих разработках, но все под Win32 да Go32. Когда пишу под винду то использую опыт работы с Delphi, когда под DOS, то, соответственнно, опыт TP/BP и всегда чувствую себя нормально, благо программирую уже более десяти лет.
Но вот сел писать программу, которая должна компилироваться и работать под всеми "большими" платформами (Windows, Linux и FreeBSD, 32/64 бита, возможно даже не-x86) и чувствую себя как последний чайник потому что просто не знаю что в этих условиях мне можно, а чего нельзя. Программа по сути простая -- читает один файл и пишет другой, никакой сети, никаких платформенно-зависимых интерфейсов. Но вопросов все равно масса:
- на какие модули я могу расчитывать (применительно к программе интересует SysUtils)?
- если модуль кроссплатформенный, то все ли функции будут присутсвовать и работать как ожидается (I/O-функции File*)?
- есть ли готовая библиотека, заменяющая полезные платформенно-зависимие мелочи (типа виндовой GetTickCount)?
- как минимальной кровью пополучить скопом все испольняемые файлы без установки каждой системы и FPC под нее?
P.S. Давно заметил что FPC по сравнению с Delphi более критичен к мелким ошибкам. Если под Delphi код работает вроде бы идеально, то под FPC запросто может завалиться при первом же запуске. Однако после анализа обычно выясняется, что ошибка действительно есть (обычно "мелочь" типа выхода за границы допустимых значений). Считаю такое поведение преимуществом FPC (это ведь Pascal, а не C).
Но вот сел писать программу, которая должна компилироваться и работать под всеми "большими" платформами (Windows, Linux и FreeBSD, 32/64 бита, возможно даже не-x86) и чувствую себя как последний чайник потому что просто не знаю что в этих условиях мне можно, а чего нельзя. Программа по сути простая -- читает один файл и пишет другой, никакой сети, никаких платформенно-зависимых интерфейсов. Но вопросов все равно масса:
- на какие модули я могу расчитывать (применительно к программе интересует SysUtils)?
- если модуль кроссплатформенный, то все ли функции будут присутсвовать и работать как ожидается (I/O-функции File*)?
- есть ли готовая библиотека, заменяющая полезные платформенно-зависимие мелочи (типа виндовой GetTickCount)?
- как минимальной кровью пополучить скопом все испольняемые файлы без установки каждой системы и FPC под нее?
P.S. Давно заметил что FPC по сравнению с Delphi более критичен к мелким ошибкам. Если под Delphi код работает вроде бы идеально, то под FPC запросто может завалиться при первом же запуске. Однако после анализа обычно выясняется, что ошибка действительно есть (обычно "мелочь" типа выхода за границы допустимых значений). Считаю такое поведение преимуществом FPC (это ведь Pascal, а не C).