использование Linux вместо UNIX для компиляции кода c для курса CS - PullRequest
1 голос
/ 18 февраля 2011

Курс CS, который я беру в Интернете, предлагает студентам скомпилировать свой исходный код и запустить такие инструменты, как valgrind, в ОС UNIX. Я совершенно новичок в UNIX, Linux, их инструментах и ​​кодировании на c. Я предпринял несколько попыток установить FreeBSD 8.1 на VMWare Player 3.1.3 и даже смог запустить VMWare Tools. Но документация FreeBSD привела меня ко многим тупикам в выполнении общих задач, то есть монтирования устройства NFS или USB. Оказывается, что пакеты, которые мне нужны для этого, не установлены и не настроены, и я не вижу прямого ответа на вопрос, как их установить.

Итак, если я использую UNIX только в качестве инструмента для запуска gcc, g ++, valgrind для этого курса CS, и вместо этого они могут быть запущены в Linux, кажется, что я могу выполнить работу быстрее, используя Ubuntu Linux.

Можно ли использовать Linux для одинаковой компиляции и запуска кода c в UNIX, если он скомпилирован в Linux? Или, если нет, какие различия искать?

Спасибо

Ответы [ 5 ]

6 голосов
/ 18 февраля 2011

Для программиста уровня C новичка, такого как OP, разница среды незначительна. Продолжайте с Linux.

1 голос
/ 18 февраля 2011

Основные различия тоже ищите:

  1. Компиляция C / C ++ не зависит от машины.В любом случае вам нужно иметь небольшую среду для компиляции в UNIX, если вам нужно отправить скомпилированные программы своему преподавателю.
  2. C / C ++ довольно переносим , если вы не используете ничего непереносимого .Очень трудно проверить, что вы не использовали что-то, что отличается между двумя компьютерами, поэтому вы можете скомпилировать в UNIX, чтобы убедиться, что вы не разрешили недоступную библиотеку (или специфическую для процедуры, аргумента, поведения ОС,ошибки и т. д.) проскальзывают в вашем коде.
  3. Поставщик make между двумя компьютерами может отличаться.Это означает, что хотя ядро ​​make будет работать аналогично, некоторые функции могут быть недоступны в обоих случаях.В действительности, вы, вероятно, не будете использовать большинство расширенных функций make, но в худшем случае вы можете выбрать несколько Makefile или ограничиться общим подмножеством функций.

В конце концов, все сводится к тому, чего захочет ваш профессор.Вероятность того, что вы сможете выполнить 100% работы в Linux, составляет более 95%, но требования к профилю или среде оценки могут быть такими, что вам придется скопировать код в учетную запись UNIX для создания окончательного исполняемого файла «отправки».Учитывая, что университетские учетные записи UNIX не так переносимы, как Linux на ноутбуке, стоимость «окончательной проверки / переноса» на университетский компьютер, вероятно, будет небольшой по сравнению с удобством работы над домашней работой больше часов, чем вы можетеуправлять в стационарной лаборатории.

1 голос
/ 18 февраля 2011

Вы также можете использовать MinGW или Cygwin . Вы упомянули VMWare, поэтому я предполагаю, что вы пытаетесь просто настроить и запустить среду в среде Windows. Они оба позволяют вам использовать компилятор и некоторые инструменты без полной установки системы на основе Linux. В курсе CS их будет более чем достаточно.

1 голос
/ 18 февраля 2011

Два должны быть фактически одинаковыми.Единственное существенное отличие, которое вы можете увидеть, связано с использованием разных версий.Я хотел бы проверить, какие версии gcc, g ++ и valgrind использует учитель, и убедиться, что на вашей установке Linux установлена ​​та же версия.

1 голос
/ 18 февраля 2011

Я думаю, что для целей курса вы могли бы запускать свои программы и инструменты в Linux,

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

...