43

Я скачал мертвую простую программу Windows с GitHub (это, если это актуально). Я загрузил его в виде файла ZIP, но не могу понять, как его установить. Это написано на С, я думаю. Нужен ли мне компилятор? (Visual Studio?) Есть что-то простое, что мне не хватает?

4 ответа4

85

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

65

Файлы .c и .h являются исходным кодом языка C.

Вам нужно будет установить компилятор C, такой как Visual Studio, tcc или что-то подобное, загрузить проект и затем скомпилировать его для запуска.

В противном случае, у проекта есть страница релиза (здесь), которая даст вам доступ к предварительно скомпилированной версии, чтобы сэкономить ваше время и усилия.

28

Github в основном используется программистами для совместной работы над проектами. Параметр «Загрузить ZIP» загружает копию исходного кода на ваш компьютер. Обычно это 1 не содержит копию скомпилированных используемых исполняемых файлов / бинарных файлов (т.е. exe-файлов)

Releases - это функция Github для доставки программного обеспечения конечным пользователям (которые обычно не заинтересованы в реальном кодировании). Релизы сопровождаются примечаниями к выпуску и ссылками для загрузки программного обеспечения или исходного кода. Это первое место, где вы должны проверить двоичные файлы.

В вашем случае на странице релизов предлагаются файлы для загрузки и настройки.

Однако многие проекты не будут иметь никаких выпусков (особенно не для Windows), и в этом случае вы можете выполнить одно из следующих действий:

  1. Поиск двоичных файлов в Интернете. Обычно поисковые системы, такие как DuckDuckGo (или Google, если вы предпочитаете), легко найдут то, что вы хотите. Попробуйте найти <application name> for Windows или <application name> exe .

  2. Скомпилируйте это самостоятельно. Вы должны иметь хотя бы некоторые базовые знания языка программирования, чтобы иметь возможность сделать это. Здесь снова, поисковые системы могут быть чрезвычайно полезными. Попробуйте выполнить поиск compile <application name> on Windows или MinGW compile <application name> .

    Здесь я рассмотрю основы компиляции утилит для Widnows:

    • Скачать MinGW . Я лично одобряю этот пакет, потому что он поставляется с boost (который используют несколько приложений) и классной оболочкой. Он также поставляется с git , который может быть очень полезен, если вы хотите скомпилировать файлы, размещенные на Github или других репозиториях контроля версий Git, без необходимости отдельно загружать исходный код.

    • Запустите следующие команды в cmd или powershell:

      • cd c:\sources\hello: Измените каталог, где бы он ни находился.
      • g++ helloworld.cpp -o helloworld.exe: здесь helloworld.cpp - имя основного исходного файла, а helloworld.exe - имя скомпилированного исполняемого файла.
      • Если вам нужно скомпилировать несколько файлов, перечислите их перед ключом -o: g++ helloworld.cpp foo.cpp -o helloworld.exe
      • Это инструкции для C++. Если вы имеете дело с приложениями, запрограммированными на C, расширение файла будет .c вместо .cpp , и вы должны использовать команду gcc вместо g++ . Остальное более или менее идентично
      • Обратите внимание, что вам может потребоваться указать больше аргументов командной строки, чтобы скомпилировать исполняемый файл, который работает правильно. На странице проекта обычно есть эти детали.
      • Вы также, вероятно, определенно хотите посмотреть в make-файлы. Это сообщение о переполнении стека о Makefiles в целом, и это один говорит нам , как использовать их с MinGW. Если проект поставляется с make-файлом, попробуйте его перед ручной компиляцией исходного кода.
      • Теперь вы сможете запустить helloworld.exe .
    • Примечание. Большинство проектов поставляются с файлом README. Пожалуйста, делайте то, что подразумевает название, эти файлы содержат важную информацию, касающуюся компиляции и запуска программного обеспечения, и, прочитав его, вы сможете избежать ненужных хлопот.

1 Примечание: Иногда среди загруженных файлов может быть папка bin , которая должна содержать исполняемые файлы / исполняемые файлы

Также смотрите Cygwin и GOW, если вы хотите использовать утилиты командной строки GNU/Linux в Windows. Я делаю несколько последних версий некоторых полезных исполняемых файлов, доступных для скачивания здесь.

Дальнейшее чтение:
http://www.mingw.org/wiki/MinGW_for_First_Time_Users_HOWTO
https://gcc.gnu.org/onlinedocs/index.html#dir
https://stackoverflow.com/questions/22873884/how-do-i-run-configure-with-mingw

17

Этот ответ будет касаться общего вопроса о создании приложения Windows только для исходного кода (на языке C). Если вам повезло, как в OP, вы можете найти скомпилированные двоичные файлы.

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

  1. Если вам повезет, проект предоставит инструкции по сборке, обычно в файле README . Иногда также может быть файл INSTALL или другая доступная документация. Если таковые имеются, следуйте инструкциям. Это ваша лучшая ставка.

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

  2. Не имея инструкций, следующий порт захода - проверить, какой инструмент сборки необходим.

    1. Если вы найдете файл с расширением .sln или .vcxproj , это, вероятно, проект MSBuild/Visual Studio. Загрузите копию Visual Studio Community или Express (для C++), откройте там этот файл проекта и нажмите кнопку воспроизведения на панели инструментов (или воспользуйтесь меню сборки).

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

      1. Поскольку он ориентирован на Windows, он, вероятно, будет использовать MinGW . Загрузите его копию, запустите MSYS из меню "Пуск", перейдите (cd) в каталог, содержащий ваш проект, и запустите make .

      2. В редких случаях, когда вместо этого используется Cygwin (к сожалению, нет простого способа определить это, но если MinGW создает ошибки с ошибкой, связанной с posix, это достойная ставка), вам придется установить Cygwin . К сожалению, это не создает собственные двоичные файлы Windows - вам придется запускать программу через Cygwin каждый раз.

    3. "Инструментом сборки" может быть пользовательский скрипт с именем build.bat или аналогичный. В этом случае вам придется либо открыть его и посмотреть, что находится внутри, либо попробовать запустить его и посмотреть, в чем заключаются ошибки. Если вы откроете его и увидите упоминания о GCC , вернитесь к 2.2.1. Шаг MinGW, но запустите пользовательский скрипт вместо make .

  3. Возможно, что нет никакого инструмента для сборки вообще. Если все, с чем вы сталкиваетесь, это один файл .c или .cpp , то, вероятно, он достаточно прост, чтобы вы могли выполнить прямую компиляцию. Это, опять же, почти всегда MinGW , поэтому загрузите его, запустите оболочку MSYS, перейдите в каталог и при необходимости вызовите gcc или g++ - например, gcc -o program.exe program.c

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


глоссарий

Инструменты сборки

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

  • make, используется повсеместно в Linux и все чаще встречается в Windows. Проекты, использующие make обычно можно идентифицировать по наличию Makefile.

  • MSBuild специфичен для Windows и обычно рассматривается в сочетании с Visual Studio. Обычно они сопровождаются файлом *.sln или *.vcxproj.

компилированные инструменты

Цепочка инструментов - это компилятор и вспомогательные инструменты. Как и у инструментов сборки, их несколько, и они обычно используются с одним из инструментов сборки.

  • MSVC - это набор инструментов Microsoft. Это наиболее распространенный набор инструментов для разработки Windows. Это обычно используется с системой MSBuild, а сборки обычно создаются с помощью Visual Studio. Однако современные проекты MSVC также могут использовать Makefile .

  • GCC (MinGW) - это порт GCC для Windows. Обычно используется с make . Если проект изначально ориентирован на Windows и имеет Makefile , он, вероятно, предназначен для MinGW-GCC.

  • GCC (Cygwin) создает POSIX-совместимую среду. Это позволяет напрямую компилировать большинство программ, написанных для Linux или Unix, и работать напрямую под Windows. Совсем недавно в Windows 10, Bash на Ubuntu на Windows является альтернативой. GCC обычно используется вместе с make .

Каркасы и библиотеки

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

Фреймворки - это фактически коллекция библиотек. Многие проекты используют один фреймворк, который вам также понадобится. Они также часто имеют собственную систему сборки, но перечислить их все было бы невозможно.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .