Пока вы обсуждаете аналог С++, я его уже нашел (ой, сейчас снова начнется......). Как сделать кросс-платформенное приложение, написаное на языке, компилируемом в native код? В частности, на Rust. Есть, например:
Здравствуйте, Grundik2, Вы писали:
G>Как сделать кросс-платформенное приложение, написаное на языке, компилируемом в native код? В частности, на Rust. Есть, например:
Только разные сборки под разные платформы (что, собственно, Rust и позволяет делать, там есть аналогии #ifdef из С++). Если у тебя нет VM, каким-то другим, относительно простым способом оно не заработает, т.к. в одном случае у тебя будет исполнимый файл ELF, в другом Mach-O, а в третьем какой-нить MZ.
G>1) Hello World на нем.
На данный момент в приложение собранное на OSX 10.7 падает на старте на 10.8 и на оборот. Допускаю, что подобная проблема и на других платформах может всплыть, так что пока говорить о Rust как о какой-то альтернативе C++ рано.
Здравствуйте, Grundik2, Вы писали:
G>Так он не только пока не кросс-платформенный,
Что ты понимаешь под кроссплатформенностью? Собрано один раз — работает везде? Если да, то тебе нужен JVM язык, а не нативный компилятор.
G>но даже на разных версиях одной платформы не работает?
Здравствуйте, kaa.python, Вы писали:
KP>Здравствуйте, Grundik2, Вы писали:
G>>Так он не только пока не кросс-платформенный,
KP>Что ты понимаешь под кроссплатформенностью? Собрано один раз — работает везде?
На windows, Linux и Mac.
Я не про Jvm. Прогу на C, например, можно ведь можно сделать такой, что она будет работать на 3ех указанных платформах.
Здравствуйте, Grundik2, Вы писали:
G>На windows, Linux и Mac. G>Я не про Jvm. Прогу на C, например, можно ведь можно сделать такой, что она будет работать на 3ех указанных платформах.
В принципе, да, можно. Но тебе потребуется собственный загрузчик и программа уже не будет совсем уж "родной" для платформы. Ну и еще возникнет куча проблем с отладкой, крэйш-дампами и прочими сопуствующими делами. Так что, если ты под кроссплатформенностью понимаешь не стандартное "одни исходники могут быть использованны для сборки под разные платформы", а что-то свое, то, боюсь, тебя ждет разочарование.
Здравствуйте, kaa.python, Вы писали:
KP>Здравствуйте, Grundik2, Вы писали:
G>>На windows, Linux и Mac. G>>Я не про Jvm. Прогу на C, например, можно ведь можно сделать такой, что она будет работать на 3ех указанных платформах.
KP>В принципе, да, можно. Но тебе потребуется собственный загрузчик и программа уже не будет совсем уж "родной" для платформы. Ну и еще возникнет куча проблем с отладкой, крэйш-дампами и прочими сопуствующими делами. Так что, если ты под кроссплатформенностью понимаешь не стандартное "одни исходники могут быть использованны для сборки под разные платформы", а что-то свое, то, боюсь, тебя ждет разочарование.
теперь понимаю именно "одни исходники могут быть использованны для сборки под разные платформы". не понял, в чем сложность, зачем собственный загрузчик?
Здравствуйте, Grundik2, Вы писали:
G>теперь понимаю именно "одни исходники могут быть использованны для сборки под разные платформы". не понял, в чем сложность, зачем собственный загрузчик?
Одни исходники — сложностей нет. Один бинарник — сложностей вагон.
Здравствуйте, kaa.python, Вы писали: KP>На данный момент в приложение собранное на OSX 10.7 падает на старте на 10.8 и на оборот.
Возможно, это просто из-за криво собранного llvm. Там какие-то особые ключи для совместимости были нужны. Хз, впрочем.