使用Linux而不是UNIX来编译CS课程的c代码

时间:2011-02-17 21:58:40

标签: c linux unix gnu

我上网的CS课程建议学生编写源代码并在OS UNIX上运行valgrind等工具。我完全不熟悉UNIX,Linux,他们的工具和c编码。我已尝试在VMWare Player 3.1.3上安装FreeBSD 8.1,甚至设法让VMWare Tools运行。但FreeBSD文档让我在完成常见任务(包括安装NFS或USB设备)方面遇到了许多问题。事实证明,我需要安装或配置我需要的软件包,我没有看到如何安装它们的直接答案。

所以,如果我只使用UNIX作为工具来运行gcc,g ++,valgrind这个CS课程,而这些可以在Linux上运行,看起来我可以使用Ubuntu Linux更快地完成工作。

如果在Linux上编译,可以使用Linux在UNIX上以相同的方式编译和运行c代码吗?或者如果没有,有什么不同之处?

由于

5 个答案:

答案 0 :(得分:6)

对于新手级C程序员(如OP),环境差异可以忽略不计。继续使用Linux。

答案 1 :(得分:1)

我认为,就本课程而言,您可以在Linux上运行您的程序和工具,

但我猜你的老师希望你使用FreeBSD的原因是除了编写你的问题之外还要学习其他东西

答案 2 :(得分:1)

两者应该是一样的。您可能会看到的唯一主要区别是由于使用了不同的版本。我会检查一下老师正在使用的gcc,g ++和valgrind的版本,并确保在安装Linux时运行相同的版本。

答案 3 :(得分:1)

您还可以使用MinGWCygwin。你提到过VMWare,所以我猜你是想在Windows环境中启动并运行一个环境。它们都允许您使用编译器和一些工具,而无需完全安装基于Linux的系统。在CS课程中,他们绰绰有余。

答案 4 :(得分:1)

主要区别也在寻找:

  1. 编译C / C ++与机器无关。如果你需要向你的教授提交已编译的程序,你需要在UNIX上编译一个小环境。
  2. 如果你不使用任何非便携式的,C / C ++是相当便携的。很难验证你没有使用两台机器之间不同的东西,所以你可能希望在UNIX上编译以验证你没有让一个不可用的库(或者特定于OS程序,参数,行为,错误等等。插入你的代码。
  3. 两台计算机之间make的供应商可能有所不同。这意味着虽然make的核心运行方式类似,但两者中可能无法使用某些功能。实际上,您可能不会使用大多数make扩展功能,但在最糟糕的情况下,您可能会选择维护多个Makefile或将自己限制为常见的功能子集。
  4. 在一天结束时,这一切都归结为教授想要的东西。可以在Linux中完成100%工作的赔率为95 +%,但是教授的要求或评分环境可能会使您必须将代码复制到UNIX帐户以构建最终的“提交”可执行文件。考虑到大学的UNIX帐户不像笔记本电脑上的Linux那么便携,大学计算机“最终验证/移植”的成本可能很小,相比于你的家庭作业更方便的工作时间在固定的实验室管理。