2010-11-27 4 views
3

Существует несколько файлов с .c anf .h расширениями (cmdline.c cmdline.h core.c core.h и т. Д.) В каталоге src, также есть один файл «MakeFile» без расширения. Есть ли возможность создать эти исходные файлы в какой-нибудь исполняемый файл на Windows 7 (64 бита)? Я думаю, мне нужно скачать компиляторы для C или некоторых sdks правильно?Как создать исполняемый файл из c исходных файлов?

+2

Был ли этот код разработан для Windows? Утилита «make» обычно является частью Unix. – JOTN

+0

Windows имеет nmake от MS; концепция «make» слишком полезна для того, чтобы даже Windows полностью игнорировала. –

+0

'make' вместе с' gcc' существует для многих ОС, включая Windows. – Kos

ответ

3

Да.

Вам нужно:

  • загрузить и установить C/C++ компилятор (я рекомендую TDragon's distribution of MinGW)
  • добавить компилятор в свой PATH (установщик может сделать это для вас большинстве случаев) ; проверить это делается путем открытия cmd.exe и набрав gcc -v и mingw32-make -v, оба должны дать вам половину экранной информации версии, если вашему путь установлен правильно,
  • через cmd.exe, перейдите к папке, в которой Makefile проживает и называют mingw32-make.

Отныне все должно составляться автоматически. Если это не так, отправьте ошибки.


Update:

Прежде всего, это было бы полезно для вас, чтобы получить MSys пакет. Установите его, и у вас будет более новая версия make (используйте теперь вместо mingw32-make).

Об ошибке CreateProcess ошибка, она имеет отношение к системе PATH Переменная слишком длинная. Вы должны были бы сделать что-то вроде этого:

  • открытого cmd
  • выполнить set PATH=c:/mingw32/bin;c:/msys/1.0/bin (изменить пути здесь, чтобы отражать вашу собственную установку, если он отличается)
  • тогда как прежде: перейти в директорию вашего проекта, запустить make. Теперь все должно быть гладким, если вы не пропустите какие-либо внешние библиотеки.

BTW - не забудьте установить MinGW или MSys в каталогах с пробелами.

+0

Мне также нравится [этот дистрибутив MinGW] (http://nuwen.net/mingw.html), который включает Boost. – fredoverflow

+0

Этот дистрибутив тоже многообещающий, но я предпочитаю TDragon из-за поддержки OpenMP и GDB в пакете. Но я действительно хотел бы, чтобы эти два автора объединили силы. :) – Kos

+0

спасибо за быстрый ответ, сделал все, как указано выше, и получив ошибку: C: \ src> mingw32-make rm -f * ~ process_begin: CreateProcess (NULL, rm -f * ~, ...) не удалось , make (e = 2): система не может найти указанный файл. mingw32-make: *** [clean] Ошибка 2 означает ли это, что в исходные файлы есть какие-то ошибки или smth? – bruto

0

Я не разработчик Windows. Но все же по моим знаниям. Visual Studio (в 2008 году, я думаю) имеет возможность читать Makefile. Пожалуйста, взгляните на это .. и при необходимости измените этот файл в свой формат.

Существует много продуктов с открытым исходным кодом, которые являются независимыми от платформы .. и они скомпилированы на обеих ОС с помощью только того Makefile, который они предоставили.

Или использовать «Cygwin»

Разработчик C++ работает в окнах, но это на самом деле GCC код купил в Windows, Является ли кто знаком о процедуре, которую они используют для превращения Linux (.sh) для исполняемых файлов ??

0

I think i need to download compilers for C or some sdks right?

Компилятор, конечно, но какие дополнительные библиотеки вам могут понадобиться, полностью зависит от самого кода. Успешная сборка также может зависеть от предполагаемой цели исходного кода и файла makefile. Makefile может быть make-файлом GNU, но есть и другие подобные, но несовместимые служебные утилиты, такие как Borland Make и MS NMake. Если это простая сборка, вы можете вообще избежать проблемы с make-файлом и использовать управление проектами, предоставляемое IDE, например Visual C++ 2010 Express.

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


[EDIT]

Хорошо, теперь, глядя на код, который вы пытаетесь построить, это очень простой сборки, так что если вы хотите, чтобы избежать использования GNU сделать, то вы могли бы просто добавьте все * .c файлы в папку src в проект в вашей среде IDE и создайте его.

Однако есть одна серьезная проблема, она использует API-интерфейсы сокетов BSD и системные заголовки Linux. Вам необходимо сначала перенести код в Windows API, например WinSock (очень похожий на BSD Sockets), или создать его под Cygwin (кувалдой для ореха). Могут быть другие зависимости Linux, которые требуют сортировки, я не смотрел подробно, но выглядит довольно просто. Тем не менее, если у вас не было первой подсказки относительно компиляции этого материала, возможно, это не задача, которую вы могли бы сделать?

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

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

+0

ah ok Я пытаюсь построить этот: http://www.cs.uiowa.edu/~asignori/papers/building-an-open-source-meta-search-engine/helios-4.1g.tar. bz2 – bruto

+0

Почему вы пытаетесь построить его на платформе Windows! – Tony

+0

@bruto: Я бы предпочел, чтобы вы разместили ссылку на страницу, где описывается код, и его можно загрузить, а не прямую ссылку на tar-ball. http://www.cs.uiowa.edu/~asignori/papers/building-an-open-source-meta-search-engine/ – Clifford

Смежные вопросы