Как скомпилировать программу на C? - PullRequest
4 голосов
/ 20 февраля 2009

Я не делал C в течение долгого времени. Я хотел бы скомпилировать эту программу , но я не знаю, как поступить. Похоже, что make-файл часто ссылается на GCC, и я никогда не использовал GCC.

Я просто хочу исполняемый файл, который будет работать на Windows.

Ответы [ 7 ]

9 голосов
/ 20 февраля 2009

Вам может потребоваться установить cygwin или mingw, которые являются UNIX-подобными средами для Windows.

При загрузке / установке cygwin или mingw у вас будет возможность загрузить и установить некоторые дополнительные функции; вам понадобится следующее:

  • gcc (попробуйте сначала версию 2.x, а не 3.x)
  • Binutils
  • GNU make (или gmake)
4 голосов
/ 20 февраля 2009

Чтобы скомпилировать эту программу, вам нужен компилятор Си. Это не обязательно должен быть gcc, хотя вы уже получили make-файл, настроенный для использования gcc. Самое простое, что вам нужно сделать, это следующее:

  1. Установка cygwin
  2. Откройте командную строку cygwin
  3. перейдите в каталог, где находится ваш make-файл
  4. введите 'make'
  5. Это должно скомпилировать вашу программу

Если вам неудобно использовать инструменты командной строки, вы можете загрузить бесплатную версию MS Visual Studio и импортировать исходные файлы в новый проект Visual Studio. Таким образом, вам не нужно устанавливать cygwin и использовать gcc, но вам нужно знать, как создавать проекты и запускать программы в Visual Studio.

4 голосов
/ 20 февраля 2009

Если требуется gcc и вы хотите, чтобы он работал в Windows, вы можете загрузить Cygwin.

Это в основном эмулятор для вещей типа GNU / Linux для Windows. Работает с эмуляцией DLL.

http://www.cygwin.com/

3 голосов
/ 20 февраля 2009

Если это достаточно переносимый код C (я на него не смотрел), то вы можете просто проигнорировать включенный Makefile и передать исходный код в любой компилятор, который вы захотите использовать. Что происходит, когда вы пытаетесь это сделать?

3 голосов
/ 20 февраля 2009

Вам почти наверняка не нужен весь cygwin для компиляции с использованием gcc. Для Windows существует множество автономных клонов gcc, например gcw .

1 голос
/ 21 февраля 2009

Dev-C ++ предоставляет простую, но приятную среду разработки, которая использует компилятор Mingw gcc и обеспечивает поддержку Makefile. Вот шаги, которые я использовал для построения приведенного выше кода с использованием Dev-C ++ (то есть это практические рекомендации)

После загрузки исходного zip из NIST, я

  • скачал и установил Dev-C ++ 5 beta 9 release
  • создал новый пустой проект
  • добавил все .c файлы из sts-2.0 \ src

Тогда под опциями проекта

  • добавлено -lm в столбце компоновщика в разделе Параметры
  • добавлено sts-2.0\include в каталоги для включения в каталоги
  • установить каталоги Исполняемый файл и Объект в каталог obj в разделе Параметры сборки

и затем нажмите OK, чтобы закрыть диалоговое окно. Перейдите в Выполнить> Компилировать и позвольте ему вращаться. Спустя минуту вы можете найти исполняемый файл в каталоге sts-2.0\obj.

0 голосов
/ 22 февраля 2009

Во-первых, маловероятно, что программа с только make-файлами будет собираться с Visual Studio, хотя бы потому, что Visual Studio не является хорошим компилятором C из стандартного POV (математические функции, в частности, очень плохо поддерживаются в компиляторах MS) , Это может быть возможно, но это будет нелегко, особенно если вы не знакомы с C. Вы должны действительно придерживаться make-файлов, а не пытаться импортировать код в вашу собственную IDE - этот вид научного кода явно предназначен для быть скомпилирован из командной строки. Это набор тестов, поэтому случайные попытки НЕ являются хорошей идеей.

Вы должны использовать mingw + msys для его установки: mingw предоставит вам компиляторы (gcc и т. Д.) И оболочку msys для корректного запуска файла make. В отличие от другого автора, я бы посоветовал вам не использовать gcc 2 - я не вижу в этом смысла. Я обычно использую gcc 3 (и даже 4) в Windows для создания научного кода, он хорошо работает, когда код подобен Unix (что является стандартной платформой для такого рода кода).

...