c - 选择c编译器并创建开发环境

标签 c xcode gcc llvm

我需要编写一些 C 函数,这些函数将由在 CenOS Linux 服务器上运行的 Java 程序调用,作为 Web 应用程序的一部分。该服务器是一个托管的专用服务器,位于另一个物理位置,离我很远。

我是否需要直接在服务器上开发 C 语言,即在服务器中进行开发隧道?或者我可以在办公室的 Mac 或 Windows PC 上开发 C 程序,然后在一切正常后将最终结果存储在服务器上以供使用吗?如果是后者,它是否会以任何方式限制开发环境的选择?也就是说,我应该使用哪个编译器,或者我需要担心 IDE 或编译器中的任何设置,因为开发环境与生产环境不同?

如果我在 Mac 上使用 Xcode 版本 3,它默认使用 GCC,而 Xcode 版本 4 使用 LLVM-GCC 进行编译。假设我使用的是 C99 标准的东西,编译器的选择是否重要?我不希望代码依赖于开发环境,因为我不能保证它在未来会保持不变。我可以以某种方式在 Xcode 中手动切换编译器以验证代码在 GCC 和 LLVM 中的工作吗?

最佳答案

忽略 windows,东西在 mac/linux 上是相当可移植的。如果您在 mac 上的任何开发环境中开发它(我个人在命令行中使用 TextWrangler 和 GCC。

开发软件后,只需将文件复制到远程服务器并在那里编译即可。

您可能需要也可能不需要更改一些内容。我遇到的唯一可移植性问题是 mac 的 socket() 使用 PF_ 而不是 AF_(Mac 仍会接受 AF_ 但它不会在其联机帮助页中宣传它,其他系统不一定会接受 PF_)和 sranddev() 不在某些系统上可用;两者都很容易解决。

但是,如果你想直接在远程机器上编写软件,这绝对不是一件难事,我会在那里 ssh 并选择文本编辑器(通常是 vi 或 emacs)和编译器(通常是海合会)。

一般来说,对于那些只是传统 unix 命令行的程序,我倾向于尽可能避免使用 Xcode,因为它喜欢隐藏东西,而我认为真正了解幕后发生的事情是一件好事。 (特别是如果您使用其他 *nix 系统。)

关于c - 选择c编译器并创建开发环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8245458/

相关文章:

swift - Xcode 在代码中内嵌显示颜色

c - 混合 fPIC 和非 fPIC 对象模块

c++ - 如何使用 gcc/g++ 在 Linux 上编译 Windows?

c++ - 在其处理程序中捕获信号的最佳方法

c - C中数组中的关键字

ios - 如何用 objective-c 类做IS?

ios - Xcode 配置文件顺序

c - 需要帮助初始化下面的数组

c++ - 使用 strcat 的内存分配详细信息

在 C (GCC) 中对宽字符字符串调用 goto