Как собрать исполняемый файл из написанных исходных файлов? - PullRequest
3 голосов
/ 27 ноября 2010

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

Ответы [ 3 ]

3 голосов
/ 27 ноября 2010

Да.

Вам необходимо:

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

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


Обновление:

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

Что касается ошибки CreateProcess, она связана с слишком длинной системной переменной PATH. Вам нужно сделать что-то вроде этого:

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

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

0 голосов
/ 27 ноября 2010

Я думаю, мне нужно скачать компиляторы для C или некоторые SDK, верно?

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

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


[EDIT]

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

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

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

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

0 голосов
/ 27 ноября 2010

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

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

Или используйте «cygwin»

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...