выбор компилятора c и создание среды разработки - PullRequest
1 голос
/ 23 ноября 2011

Мне нужно написать некоторые функции C, которые будут вызываться java-программой, работающей на сервере CenOS Linux, как часть веб-приложения. Сервер - это выделенный выделенный сервер, расположенный в другом физическом месте, далеко от меня.

Нужно ли разрабатывать компоненты C непосредственно на сервере, то есть выполнять туннелирование разработки на сервер? Или я могу разработать программу C на компьютере Mac или Windows в моем офисе, а затем, когда все будет работать нормально, сохранить конечные результаты на сервере для использования? Если последнее, ограничивает ли это выбор среды разработки каким-либо образом? То есть, какой компилятор мне следует использовать, или какие-либо настройки в IDE или компиляторе, о которых мне нужно беспокоиться, поскольку среда разработки будет отличаться от рабочей среды?

Если я использую Xcode версии 3 на Mac, он использует GCC по умолчанию, тогда как Xcode version 4 использует LLVM-GCC для компиляции. Имеет ли значение выбор компилятора, если я использую стандартные вещи C99? Я не хочу, чтобы код зависел от среды разработки, так как я не могу гарантировать, что он останется таким же в будущем. Могу ли я как-то переключить компилятор вручную в Xcode, чтобы убедиться, что код работает в GCC и LLVM?

Ответы [ 3 ]

2 голосов
/ 23 ноября 2011

Игнорирование окон, все довольно переносимо для Mac / Linux.Если вы разрабатываете его на Mac в любой среде разработки (я лично использую TextWrangler и GCC из командной строки.

Как только вы разрабатываете свое программное обеспечение, вам просто нужно скопировать файлна ваш удаленный сервер и скомпилируйте его там.

Вам может понадобиться или не потребоваться изменить несколько вещей. Единственная проблема с переносимостью, с которой я столкнулся, - это использование mac mac () с использованием PF_ вместо AF_ (Mac по-прежнему будетпринять AF_, но он не афиширует его на своей странице руководства, и другие системы не обязательно будут принимать PF_) и sranddev (), недоступные в некоторых системах, обе из которых были очень легко разрешимы.

Если, однако,Вы хотели написать программное обеспечение непосредственно на удаленном компьютере, это определенно не сложно, я просто выбрал бы ssh и выбрал бы текстовые редакторы (обычно vi или emacs) и компиляторы (обычно gcc).

В общем, для программ, которые являются просто традиционными вещами командной строки Unix, я стараюсь избегать Xcode, насколько это возможноле, потому что он любит скрывать вещи, и IMO это хорошая вещь, чтобы действительно понять, что происходит за кулисами.(Особенно, если вы используете другие системы * nix.)

0 голосов
/ 23 ноября 2011

Имеет ли значение выбор компилятора при условии, что я использую стандартные вещи C99?

Да: Microsoft, AFAIK, все еще не полностью поддерживает C99 (но, возможно, это изменилось в последней версии MSVC). Кроме того, вы должны противостоять искушению использовать нестандартные функции только потому, что они есть. OTOH, локальная сборка env может заставить вас писать переносимые программы.

Выбор зависит от того, как ваша программа будет взаимодействовать с более крупной системой, но разработка, по крайней мере, отдельных частей на местном уровне, возможно, является наиболее удобным вариантом.

0 голосов
/ 23 ноября 2011

Что бы вы ни делали, его нужно будет перекомпилировать на сервере.

Вероятно, вы можете создать код, который можно запускать / тестировать в обеих средах, хотя вам может потребоваться #ifdef из-за проблем совместимости. Сколько из этого, если таковые имеются, во многом зависит от того, что вы на самом деле пишете.

...