Как скомпилировать программу с github для windows

Как собрать проект C++ с github из исходников и подключить его к Visual Studio

P.S. В новых сборках Visual Studio проекты из репозиториев открываются просто из меню Файл — Клонировать репозиторий. В статье речь идёт о ситуации, когда так сделать невозможно.

Благодаря менеджеру пакетов winget, уже входящему в актуальные сборки масдайки, теперь в Windows 10 можно инсталлировать приложения одной простой консольной командой
(см. также доку от Микрософта).

Но мы рассмотрим сейчас ситуацию, когда у нас есть только ссылка на исходники проекта, скажем, на Гитхабе
(возьмём для примера библиотеку для простых чисел primesieve) и нужно каким-то образом «вручную» скомпилировать внешний проект в своей Studio, чтобы воспользоваться его возможностями в своём приложении.

В противном случае, конечно же, нестандартный include вроде этого, который вы нашли в коде-образце

#include <primesieve.hpp>

работать не будет ни за что.

Первым делом скачаем все исходники внешнего проекта «как есть» в архиве .zip, для этого у нас на гитхабе есть кнопка «Download ZIP»:

Как загрузить проект с github в архиве .zip

Как загрузить проект с github в архиве .zip

Развернём проект, не создавая новой папки, если у вашего архиватора нет
такого же пункта меню, просто сотрите предлагаемое архиватором имя новой папки, потому что папка уже есть в архиве:

Извлечь внешний проект из архива, не создавая новой папки

Извлечь внешний проект из архива, не создавая новой папки

Если покопаться в файле readme.md проекта, как правило, можно найти инструкцию по установке (Build instructions) и даже «Detailed build instructions», где говорится, в числе прочего, и о компиляции проекта под Microsoft Visual C++:

Команды cmake для компиляции проекта со страницы документации

Команды cmake для компиляции проекта со страницы документации

Откроем свой «некомпилируемый» без нужной библиотеки проект в Studio (я использую актуальную сборку версии 2019) и обратимся к команде меню Вид — Терминал.
Выберем инструмент «Командная строка разработчика» (по умолчанию в новых сборках теперь выбран PowerShell, впрочем, если в документации приведены команды PowerShell, то применяйте их).

У Микрософта инструмент описан вот здесь.

Командная строка разработчика в Studio

Командная строка разработчика в Studio

В командной строке пишем команды из документации, но сначала, конечно, нужно перейти в ту папку, где у вас развёрнут скачанный проект. Мне понадобилось ввести в консоли следующее, завершая каждую команду нажатием Enter:

d:
cd \temp\primesieve-master

— теперь я в нужной папке, так как развернул свой архив в папку d:\temp

Далее как написано:

cmake -G "Visual Studio 16 2019" .
cmake --build . --config Release

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

Ну и, конечно, для другой версии Studio будет другое указание компилятора, узнать своё можно командой

cmake -G

Нужный генератор будет помечен в списке «звёздочкой».

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

Теперь проект можно открывать в Studio и работать с ним, все нужные файлы есть в папке d:\temp\primesieve-master

Но мы хотим подключить всё, что нужно, к своему имеющемуся проекту, а не пытаться модифицировать чужую библиотеку.

Примерный путь описан вот здесь, мне же пришлось сделать конкретно следующее:

  • Меню Проект — Свойства, слева выбираем Свойства конфигурации, C/C++, Общие,
    раскрываем поле «Дополнительные каталоги включаемых файлов», говорим «Изменить» и показываем на папку
    D:\Temp\primesieve-master\include . В вашем проекте, как правило, тоже будет вложенная папка include.

  • В том же окне выбираем Компоновщик — Общие — Дополнительные каталоги библиотек, «Изменить» и добавляем путь
    D:\Temp\primesieve-master\Release . Этого может оказаться мало,
    у вашего проекта и внешнего должны быть выбраны одинаковые конфигурации решения.
    Так как я выбрал Release для внешнего проекта, то и в своём проекте в списке «Конфигурации решения» (на стандартной панели инструментов) указал Release и платформу x64.
    Можно было работать и с Debug, но тогда и внешний проект компилируем как Debug и потом выбираем путь D:\Temp\primesieve-master\Debug .

  • В списке C/C++ — Создание кода — Библиотека времени выполнения выбрал
    Многопоточный DLL (/MD), иначе будет «LNK2038: обнаружено несоответствие для ‘RuntimeLibrary’: значение ‘MT_StaticRelease’ не соответствует значению ‘MD_DynamicRelease’ в file.obj».

  • Сам файл библиотеки, как правило имеющий тип .lib, тоже нужно прописать.
    Всё в том же окне свойства проекта выбираем список Компоновщик — Ввод,
    раскрываем список «Дополнительные зависимости», жмём «Изменить» и указываем
    в поле ввода имя файла библиотеки primesieve.lib

  • На всякий случай, проверяем, что у нас в списке
    Компоновщик — Система — Подсистема, у меня там просто Консоль (/SUBSYSTEM:CONSOLE), для других
    типов проектов может понадобиться изменение и этой настройки.

После этого у меня всё заработало.

Ну а конкретная задача, на которой я проверял библиотеку —
печать самых длинных цепочек последовательных простых чисел,
в которых разница между соседними значениями строго возрастает или строго убывает,
предел счёта равен 1000000, вот сама программа:

#include <cstdint>
#include <iostream>
#include <vector>
#include <primesieve.hpp>

void print_diffs(const std::vector<uint64_t>& vec) {
 for (size_t i = 0, n = vec.size(); i != n; ++i) {
  if (i != 0)
   std::cout << " (" << vec[i] - vec[i - 1] << ") ";
  std::cout << vec[i];
 }
 std::cout << '\n';
}

int main() {
 std::vector <uint64_t> asc, desc;
 std::vector <std::vector<uint64_t>> max_asc, max_desc;
 size_t max_asc_len = 0, max_desc_len = 0;
 uint64_t prime;
 const uint64_t limit = 1000000;
 for (primesieve::iterator pi; (prime = pi.next_prime()) < limit; ) {
  size_t alen = asc.size();
  if (alen > 1 && prime - asc[alen - 1] <= asc[alen - 1] - asc[alen - 2])
   asc.erase(asc.begin(), asc.end() - 1);
  asc.push_back(prime);
  if (asc.size() >= max_asc_len) {
   if (asc.size() > max_asc_len) {
    max_asc_len = asc.size();
    max_asc.clear();
   }
   max_asc.push_back(asc);
  }
  size_t dlen = desc.size();
  if (dlen > 1 && prime - desc[dlen - 1] >= desc[dlen - 1] - desc[dlen - 2])
   desc.erase(desc.begin(), desc.end() - 1);
  desc.push_back(prime);
  if (desc.size() >= max_desc_len) {
   if (desc.size() > max_desc_len) {
    max_desc_len = desc.size();
    max_desc.clear();
   }
   max_desc.push_back(desc);
  }
 }
 std::cout << "Longest run(s) of ascending prime gaps up to " << limit << ":\n";
 for (const auto& v : max_asc)
  print_diffs(v);
 std::cout << "\nLongest run(s) of descending prime gaps up to " << limit << ":\n";
 for (const auto& v : max_desc)
  print_diffs(v);
 return 0;
}

Ответы вышли такие:

Longest run(s) of ascending prime gaps up to 1000000:
128981 (2) 128983 (4) 128987 (6) 128993 (8) 129001 (10) 129011 (12) 129023 (14) 129037
402581 (2) 402583 (4) 402587 (6) 402593 (8) 402601 (12) 402613 (18) 402631 (60) 402691
665111 (2) 665113 (4) 665117 (6) 665123 (8) 665131 (10) 665141 (12) 665153 (24) 665177

Longest run(s) of descending prime gaps up to 1000000:
322171 (22) 322193 (20) 322213 (16) 322229 (8) 322237 (6) 322243 (4) 322247 (2) 322249
752207 (44) 752251 (12) 752263 (10) 752273 (8) 752281 (6) 752287 (4) 752291 (2) 752293

За счёт хорошо оптимизированного кода библиотеки считается всё мгновенно.

Это задача из списка задач на простые числа

21.10.2021, 13:15 [9272 просмотра]


К этой статье пока нет комментариев, Ваш будет первым

This answer will be addressing the general question of building a source-only Windows application (in C). If you’re lucky like the OP, you might be able to find precompiled binaries.

The first thing to be aware of here is that there’s no single way to build an app from source. There are approximately as many variations as there are different projects. That said, here are some general steps:

  1. If you’re lucky, the project will provide build instructions, usually within the README file. Occasionally, there might also be an INSTALL file, or other documentation available. If those are available, follow the instructions. They’re your best bet.

    As others have said, unfortunately, it’s very difficult to reconstruct the required build steps without instructions. However, we can at least make a best-effort attempt here, which will work for most simple projects.

  2. Lacking instructions, the next port of call is to check which build tool is required.

    1. If you find a file with a .sln or .vcxproj extension, this is probably a MSBuild/Visual Studio project. Download a copy of Visual Studio Community or Express (for C++), open that project file in there, and click the play button in the toolbar (or use the build menu).

    2. If you find a Makefile, this is probably going to require make. But this is where things get even more difficult, since there’s so many independent and incompatible systems that use make.

      1. Since it’s targeted towards Windows, it’s probably going to use MinGW. Download a copy of that, launch MSYS from your start menu, navigate (cd) to the directory that contains your project, and run make.

      2. On the rare occasion that it’s Cygwin instead (there’s no easy way to tell, unfortunately, but if the MinGW build errors out with a «posix»-related error, this is a decent bet), you’ll have to install Cygwin instead. Unfortunately, this does not build native Windows binaries — you’ll have to launch the program through Cygwin every time.

    3. The «build tool» could be a custom script by the name of build.bat or similar. In this case, you’ll have to either open it up and see what’s inside, or try running it and see what the errors are. If you open it and see mentions of GCC, go back up to the 2.2.1. MinGW step but run the custom script instead of make.

  3. It’s possible that there’s no build tool at all. If all you encounter is a single .c or .cpp file, then it’s probably simple enough that you can do a straight compile. These are, again, almost always MinGW, so download that, launch the MSYS shell, navigate to the directory, and invoke either gcc or g++ as necessary — e.g. gcc -o program.exe program.c

  4. It’s possible that none of these work. If you got error messages at any step, they might contain a clue of what’s missing. One possibility is that you were lacking certain required frameworks or libraries — if you feel up to it, you can try downloading those and adding them to your build environment, but this is typically not a trivial process and has so many variations there is no way to cover them in an answer.


Glossary

Build tools

A build tool allows you to build a project with very few commands. For most projects with more than a single source file, a build tool will be involved somewhere. There are several build tools, but the most common are:

  • make, used everywhere on Linux and increasingly common on Windows. Projects using make can usually be identified by the presence of a Makefile.

  • MSBuild is Windows-specific and is typically seen in conjunction with Visual Studio. These will usually be accompanied by a *.sln or *.vcxproj file.

Toolchains

A toolchain is the compiler and supporting tools. Just like the build tools, there are several, and they’re usually used with one of the build tools.

  • MSVC is Microsoft’s toolchain. This is the most common toolchain for Windows native development. This is usually used with the MSBuild system, and builds are usually created through Visual Studio. However, modern MSVC projects can use Makefile too.

  • GCC (MinGW) is a port of GCC for Windows. Usually used with make. If the project is targeted towards Windows natively and has a Makefile, it’s probably for MinGW-GCC.

  • GCC (Cygwin) creates a POSIX-compatible environment. This allows you to directly compile most programs written for Linux or Unix and have it work directly under Windows. More recently in Windows 10, Bash on Ubuntu on Windows is an alternative. GCC is usually used in conjunction with make.

Frameworks and libraries

Libraries are reusable sets of code written by other people, that many programs depend on to avoid reinventing the wheel. You need to have these dependencies available in order to build the project. If you’re lucky, they’ll be included with your initial download, but this is not always the case.

Frameworks are effectively a collection of libraries. Many projects use one framework, which you’ll also need. These often come with their own build system too, but listing them all would be impossible.

The hardest part is dealing with extra framework and library dependencies. If, say, the project uses Qt — then you’ll need that whole mess to build it properly. This is a huge undertaking, and unless you have prior experience it’s probably better to just ask others for direct help here.

Установите компилятор, например, GCC, скачайте архив с GitHub, измените то, что вам надо, затем скомпилируйте через командную строку, например так: g++ myprog.cpp, если есть заголовочные файлы, то добавите флаг -o. Подробнее обо всем этом здесь. Либо можете установить Visual Studio, изменить там и скомпилировать, вот пошаговая инструкция.

Ответ написан


2

комментария

Git и Github. Простые рецепты

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

Система Git появилась, как средство управления исходными текстами в операционной системе Linux и завоевала множество поклонников в среде Open Source.

Сервис Github предоставляет хостинг (хранение) исходных текстов как на платной, так и на бесплатной основе. Это одна из крупнейших систем, которую любят Open Source пользователи. Основное отличие платной версии — это возможность создания частных репозиториев (хранилищ) исходных текстов и если вам скрывать нечего, то можете спокойно пользоваться бесплатной версией.

После того, как вы начали работу над проектом и написали какой-то работающий прототип, у вас появится желание сохранить результаты работы. Это так же может быть полезно в случае, если вы захотите продолжить работу на другом компьютере. Самое простое решение — это сохранить все на флешке. Этот вариант неплохо работает, но если есть подключение к интернету (а сейчас у кого его нет), то удобно воспользоваться системами Git/Github.

В этой статье будут описаны базовые сценарии использования систем Git/Github при работе над проектом в среде Linux с помощью командной строки. Все примеры проверялись на системе с Linux Ubuntu 14.04 и Git 1.9.1. Если вы пользуетесь другим дистрибутивом, то возможны отличия.

Создание локального репозитория

Предположим, что ваш проект находится в папке /home/user/project. Перед тем, как сохранять исходники, можно посмотреть, нет ли временных файлов в папке с проектом и по возможности их удалить.

Для просмотра папки удобно воспользоваться командой tree, которая покажет не только содержимое каждой папки, но и древовидную структуру директорий.

Часто временные файлы содержат специфические суффиксы, по которым их легко обнаружить и в последствии удалить. Для поиска таких файлов можно воспользоваться командой find. В качестве примера посмотрим, как найти все файлы, которые генерируются компилятором Python и имеют расширение .pyc

Переходим в папку с проектом /home/user/project:

И показываем список файлов с расширением .pyc:

Эта команда выведет список всех файлов с расширением .pyc в текущей директории и в ее поддиректориях. Для удаления найденных файлов, достаточно добавить ключ -delete к этой команде:

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

Создадим локальный репозиторий в папке с проектом:

После выполнения этой команды появится новая папка с именем .git. В ней будет несколько файлов и поддиректориев. На данный момент система управления версиями еще не видит наших файлов.

Добавление файлов в локальный репозиторий

Для добавления файлов используется команда:

После выполнения команды, файл readme будет добавлен в систему управления версий (конечно если он уже был то этого в проекте). При добавлении файла генерируется хеш значение, которое выглядит примерно так:

Добавленные файлы хранятся в папке .git/objects/xx/yyyyyyyy, при этом первые 2 цифры хеша ипользуются для указания директории, а остальное хеш значение является именем файла. Наш добавленный файл будет находится здесь:

Что легко увидеть с помощью команды:

Сам файл является архивом, который легко распаковать и вывести на экран, указав полное значение хеша.

Для того, чтобы добавить все файлы из текущей директории введите:

Если нужно добавить файлы из текущей директории и из всех поддиректориев, то используйте:

Для того, чтобы в систему не попадали временные файлы, можно их занести в файл .gitignore, который нужно создать самостоятельно и разместить в корневом каталоге проекта (на том же уровне, что и .git директория).

Например, если в в файл .gitignore добавить следующую строчку *.pyc, то все файлы с расширением .pyc не будут добавляться в репозиторий.

После добавления файлов, все изменения находятся в так называемой staging (или cached) area. Это некоторое временнное хранилище, которое используется для накопления изменений и из которого создаются собственно версии проектов (commit).

Для просмотра текущего состояния можно воспользоваться командой:

После выполнения команды мы увидим, что в stage area находится наш файл:

Если вы продолжите вносить изменения в файл readme, то после вызова команды git status вы увидите две версии файла.

Чтобы добавить новые изменения достаточно повторить команду. Команда git add не только добавляет новые файлы, но и все изменения файлов, которые были добавлены ранее.

Можно отменить добавления файла readme в staging area с помощью команды:

После выполнения команды, файл readme отметится, как неизмененный системой.

Создание версии проекта

После того, как мы добавили нужные файлы в staging area мы можем создать версию проекта. С помощью команды:

Каждая новая версия сопровождается комментарием.

После коммита, мы сможем найти два новых объекта внутри .git репозитория.

Посмотрим, что внутри:

Ключ -t показывает тип объекта. В результате мы видим:

Для второго объекта:

Для самого первого файла:

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

Самую первую версию отменить нельзя. Ее можно только исправить. Если вы хотите добавить изменения в последнюю версию, то после выполнения команды commit, добавляете необходимые изменения и вызываете:

Ключ —no-edit нужен, чтобы не вводить заново комментарий.

Можно просмотреть изменения, которые вы внесли последним коммитом:

Ключ —name-only нужен, чтобы показывать только имена измененный файлов. Без него по каждому измененнному файлу будет выдан список всех изменений.

Если вы продолжили работать и изменили только те файлы, которые были уже добавлены в систему командой git add, вы можете сделать коммит одной командой:

Для просмотра списка всех коммитов, воспользуйтесь командой:

Ключ —oneline нужен, чтобы уменьшить количество информации выдаваемой на экран. С этим ключем каждый коммит показывается в одну строчку. Например:

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

Для отмены последнего коммита (кроме самого первого) можно воспользоваться следующей командой:

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

Создание репозитория на Github

До текущего момента мы работали с локальным репозиторием, который сохранялся в папке на компьютере. Если мы хотим иметь возможность сохранения проекта в интернете, создадим репозиторий на Github. Для начала нужно зарегистрироваться на сайте github.com под именем myuser (в вашем случае это может быть любое другое имя).

После регистрации нажимаем кнопочку «+» и вводим название репозитория. Выбираем тип Public (репозиторий всегда Public для бесплатной версии) и нажимаем Create.

В результате мы создали репозиторий на сайте Github. На экране мы увидим инструкцию, как соединить наш локальный репозиторий со вновь созданным. Часть команд нам уже знакома.

Добавляем удаленный репозиторий (по протоколу SSH) под именем origin (вместо origin можно использовать любое другое имя).

Можем просмотреть результат добавления с помощью команды:

Если все было правильно сделано, то увидим:

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

Это может понадобиться, если вы захотите поменять SSH доступ на HTTPS. После этого можно добавить его опять, например под именем github и протоколом HTTPS.

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

Ключ -u используется для того, чтобы установить связь между удаленным репозиторием github и вашей веткой master. Все дальнейшие изменения вы можете переносить на удаленный репозиторий упрощенной командой.

Перенос репозитория на другой компьютер

После того, как репозиторий был создан на Github, его можно скопировать на любой другой компьютер. Для этого применяется команда:

Результатом выполнения этой команды будет создание папки project в текущем каталоге. Эта папка также будет содержать локальный репозиторий (то есть папку .git).

Так же можно добавить название папки, в которой вы хотите разместить локальный репозиторий.

Работа с одним репозиторием с разных компьютеров

С одним репозиторием с разных компьютеров может работать несколько разработчиков или вы сами, если например работаете над одним и тем же проектом дома и на работе.

Для получения обновлений с удаленного репозитория воспользуйтесь командой:

Если вы изменили ваши локальные файлы, то команда git pull выдаст ошибку. Если вы уверены, что хотите перезаписать локальные файлы, файлами из удаленного репозитория то выполните команды:

Вместо github подставьте название вашего удаленного репозитория, которое вы зарегистрировали командой git push -u.

Как мы уже знаем, для того чтобы изменения выложить на удаленный репозиторий используется команда:

В случае, если в удаленном репозитории лежат файлы с версией более новой, чем у вас в локальном, то команда git push выдаст ошибку. Если вы уверены, что хотите перезаписать файлы в удаленном репозитории несмотря на конфликт версий, то воспользуйтесь командой:

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

После выполнения этой команды ваша локальная директория будет содержать файлы такие же, как и при последнем коммите. Вы можете загрузить новые файлы из удаленного репозитория командой git pull и после этого вернуть ваши изменения которые вы отложили командой:

Toliak / Guide.md

Чтобы установить значение опции, отличное от «по умолчанию», необходимо дописать -DНАЗВАНИЕ_ОПЦИИ=Значение к команде конфигурирования. Команда после этого может выглядеть, например, так:

Чтобы сделать такое действие в CLion, необходимо перейти в: Settings -> CMake -> CMake options.

Если используется Hunter (пакетный менеджер), то прописываются его настройки

На этапе конфигурирования, CMake ожидает файл tools/gate/cmake/HunterGate.cmake .

Если этот файл не существует, возможны 2 варианта:

  • Необходимо добавить гит подмодуль:

git submodule add https://github.com/hunter-packages/gate.git tools/gate

  • Либо (если используется шаблонный репозиторий) необходимо обновить подмодули:

git submodule update —init —recursive

URL и SHA1 ядра Hunter можно получить в релизах: https://github.com/hunter-packages/gate.git

Дополнительные опции для компилятора (могут отсутствовать)

Подключение зависимых библиотек

Затем осуществляется подключение библиотек, в которых нуждается проект (Boost, GTest, Threads и т.д.)

Указания для Hunter о необходимо коллекционирования указанных пакетов

Указания о том, какие пакеты будут использованы (ожидается их наличие)

CONFIG — ключевое слово, показывающее маску названий конфигурационных файлов.

REQUIRED — обязательность подключения пакета (иначе — ошибка).

Добавление целей сборки

После настройки окружающией среды пишется информация о том, что ожидается получить в результате сборки

Указание директорий с заголовочными файлами

Указание библиотек для линковки

Названия библиотек из Hunter, как правило, имеют вид LibraryName::ComponentName .

Данные о библиотеках из пакета, добавленного через find_package хранятся в переменных. Например, для Threads: $

Для сборки тестирования необходимо наличие:

  1. Добавления пакета googletest (GTest в Hunter)
  2. Цели для сборки исполняемого файла
  3. Линковки gtest_main и gtest (GTest::main и GTest::gtest в Hunter) к цели
  4. Включенного тестирования в конфигурационном файле

Можно добавлять несколько тестовых целей под разными названиями. И даже с использованием разных фреймворков.

Для сборки и выполнения тестирования необходимо выполнить следующую команду (ожидается предварительное конфигурирование):

Пример тела конфигурационного файла с тестированием:

Для удобства в CLion необходимо добавить конфигурацию сборки google test.

Начало конфигурации. Как правило, его трогать не надо.

Далее прописываются цели, которые будут проанализированы на процент покрытия.

Конец конфигурации. Как правило, не надо трогать.

Для начала необходимо настроить окружение. Как правило, это не надо трогать

Далее необходимо указать jobs’ы, которые будет выполнять Travis. Jobs содержит название и команды.

К таким относятся, например, правила для веток и для уведомлений. Например:

Сборка программ из исходников в Linux

Пользователям Linux необходимо хотя бы приблизительно знать как происходит сборка программ из исходников. Так как вы можете столкнуться стем, что вашей программы может и не быть скомпилированной под ваш дистрибутив. Сама сборка программ не сложна, и обычно описана в файле README или INSTALL, который идет вместе с пакетами для сборки. Так что, будьте внимательны. И так, сборку из исходников мы будем разбирать на примере программы GParted. Но, для начала давайте установим необходимые утилиты – интерпретатор и компилятор, для того, что бы можно было собирать программы. Для установки необходимых утилит вводим команду:

Debian/Ubuntu

Arch/Manjaro

Сборка программ c Github

И начнем мы с GParted, сборку или как еще называется данный процесс – компиляцию мы будем выполнять в Ubuntu 20.04. Вы можете спросить почему именно в Ubuntu, отвечу, для Arch Linux и подобных есть AUR. Да и со сборкой программ в Arch мы разберемся чуть позже. Там можно найти практически все программы, которые существуют для Linux. Для начала нужно скачать исходники программы, для этого переходим на сайт, скачиваем, а затем распаковываем архив. Так же можно выполнить команду:

Затем переходим в папку:

Теперь заглянем в файл README и посмотрим его внимательно. Если приглядеться, то можно увидеть какие зависимости необходимы доустановить:

программ в Linux 3

Обратите внимания, что GPArted хорошо документированная, и для установки под каждый дистрибутив имеется инструкция с дополнительными зависимостями. Устанавливаем зависимости и выполняем команду для того, что бы у вас сформировался установочный файл:

программ в Linux 1

Если проблема с зависимостями у вас останется, то вы увидите об этом вывод:

программ в Linux 2

После того, как вы установите все необходимые зависимости, запускаете снова “autogen.sh”. В итоге он вам скажет что можно приступать к дальнейшим действиям:

программ в Linux 4

Далее запускаем “make” и затем когда “make” выполнит свою работу, запускаем “sudo make install”. Обратите внимания, в некоторых инструкциях не упоминается о том, что нужно установку программы выполнять именно от “sudo”, а именно: “sudo make install”. Из за этого у вас могут возникнуть проблемы. И так продолжаем сборку программы вводим команды:

программ в Linux 5

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

После установки можно найти программу в меню установленных программ.

Сборка программ из архива

Распаковывать архив можно из терминала, а можно при помощи графического интерфейса, например программой Ark или Менеджер архивов. Тут все зависит от того, как вам удобней. Для того что бы распаковать архив в терминале, нужно выполнить определенную команду. На примере с GParted такой командой будет:

Примечание, tar является утилитой командной строки для распаковки архивов. И так, затем переходим в папку с распакованной программой и смотрим какие там имеются файлы. Тут как раз имеются README:

программ в Linux 8

Для наглядности я открою файл README в графической утилите Mousepad. Как вы можете заметить, в инструкции подробно прописано как устанавливать данную программу из исходников:

программ в Linux 3

Для того что бы собрать данную программу, достаточно выполнить команды, которые прописаны в инструкции. Так как мы уже распаковали данный архив, пропускаем это шаг. Если вы не знаете как перейти в терминале в директорию программы, поясню. А если знаете, то пропустите данный шаг. Для того что бы перейти в терминале в нужную директорию, используется команда “cd“. Например, у вас папка с программой находится по адресу “Загрузки – папка с программой”, выполняем команду:

После чего можно посмотреть что у нас имеется в данной директории введя команду “ls“, после чего снова вводим команду “cd” и переходим в нужную нам директорию. Например:

Теперь приступаем к сборке программы GParted. Для этого вводим команды которые написаны в файле README.

На этом этапе установки могут возникнуть проблемы с зависимостями. По этому их необходимо установить:

программ в Linux 9

После того как все необходимые зависимости были установлены, снова запускаем “./configure” и продолжаем компиляцию программы как описано выше. А именно, после запуска “./configure” запускаем “make”, а затем “sudo make install”.

Ошибки при сборке программы

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

программ в Linux 9 1

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

Если таких скриптов вы не смогли найти, то можно выполнить последовательно следующие команды:

В случае с дистрибутивами Arch/Manjaro необходимые пакеты вы можете подгрузить используя “Менеджер программ”, Предварительно не забыв подключить репозиторий AUR:

программ в Linux 11

Пример необходимых зависимостей при установки в Manjaro программы Blender. Компиляция производилась с использованием файла PKGBUILD:

программ в Linux 12

Удаление программ

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

программ в Linux 7

Сборка в Arch/Manjaro (Arch Build System – ABS)

В дистрибутивах Arch и Arch подобных есть несколько способов устанавливать программное обеспечение, собственно, как и во многих других дистрибутивах. Но, в Arch имеется AUR, это пользовательский репозиторий, где лежат программы, которые не вошли в официальные репозитории. А так же существует способ собрать программу из исходников и вот тут вы можете столкнуться с тем, что вам попадется файл “PKGBUILD”. PKGBUILD это грубо говоря скрипт, который содержит инструкцию по скачиванию необходимых пакетов. Так же вместе с PKGBUILD могут быть и другие файлы, например “blender.desktop”. Вы можете открыть PKGBUILD и изменить необходимые параметры, но, это только при условии что вы знаете что делаете. Предположительно, вы уже перешли в каталог с исходниками программы, если же нет, сделать это можно командой в терминале “cd и путь к директории”. Для сборки пакета выполняем команду:

Опишу опции которые тут применяются, опция -s произвести проверку и установку зависимостей, а опция i установку самого пакета:

программ в Linux 10

Сама сборка програм из исходников может занять значительное время, в зависимости от вашего компьютера.

Заключение

Может случится и такое, что необходимые зависимости при компиляции программ вы попросту не найдете в официальных репозиториях. Для этого можно воспользоваться поиском, после чего найдя их, устанавливаете. Можно посмотреть и на сайте pkgs.org. На этом сайте вы сможете найти разного рода пакеты для множества дистрибутивов Linux для решения проблем при сборке программ.

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
С уважением Cyber-X

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

Первым шагом при сборке программы из исходников на GitHub является клонирование репозитория с исходным кодом. Для этого необходимо скопировать ссылку на репозиторий, открыть командную строку или терминал и выполнить команду git clone [ссылка]. Это создаст локальную копию репозитория на вашем компьютере.

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

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

Содержание

  1. Подготовка к сборке
  2. Загрузка исходников с Github
  3. Установка необходимых зависимостей
  4. Конфигурация программы
  5. Сборка программы
  6. Запуск сборки
  7. Отслеживание процесса сборки
  8. Тестирование программы
  9. Проверка работоспособности
  10. Исправление возникающих ошибок
  11. 1. Ошибка отсутствующих зависимостей
  12. 2. Ошибка компиляции
  13. 3. Ошибки сборки
  14. 4. Ошибка выполнения программы
  15. 5. Ошибка установки программы
  16. Вопрос-ответ
  17. Какие инструменты нужны, чтобы собрать программу из исходников GitHub?
  18. Можно ли собрать программу из исходников GitHub без использования командной строки?

Подготовка к сборке

Перед началом сборки программы из исходников с репозитория на GitHub, необходимо выполнить несколько предварительных действий:

  1. Установить системные требования. Проверьте, что у вас установлены необходимые компоненты и инструменты для сборки программы. Обычно разработчик указывает все зависимости и требования в файле README репозитория. Внимательно прочитайте этот файл и убедитесь, что у вас установлено все необходимое.
  2. Установить и настроить Git. Если у вас еще не установлен Git, следует его установить. Для этого нужно перейти на официальный сайт https://git-scm.com/ и загрузить установщик для вашей операционной системы. После установки необходимо сконфигурировать Git, указав ваше имя и электронную почту. Для этого откройте командную строку (терминал) и выполните следующие команды:

    git config --global user.name "Ваше имя"

    git config --global user.email "ваша_электронная_почта@example.com"

  3. Форкнуть репозиторий. Если вы планируете вносить изменения в исходный код программы, рекомендуется создать собственную копию репозитория на GitHub. Для этого на странице репозитория нажмите кнопку «Fork». В результате будет создан ваш собственный репозиторий, в котором вы сможете работать над проектом.

После выполнения этих действий вы будете готовы к сборке программы из исходников.

Загрузка исходников с Github

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

Чтобы загрузить исходники с Github, следуйте следующим шагам:

  1. Перейдите на страницу репозитория с исходниками на Github.
  2. В правом верхнем углу страницы найдите зеленую кнопку «Code».
  3. Нажмите на кнопку «Code».
  4. В открывшемся меню выберите «Download ZIP».
  5. Сохраните ZIP-архив на локальный компьютер.
  6. Распакуйте ZIP-архив в нужную вам директорию.

После выполнения всех этих шагов, у вас будут на локальном компьютере все необходимые исходники для сборки программы.

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

Установка необходимых зависимостей

Перед тем, как собирать программу из исходников на GitHub, необходимо установить все необходимые зависимости. Зависимости — это программы и библиотеки, от которых зависит работа проекта. Вам понадобится установить следующее:

  1. Язык программирования и его среду разработки, если они не установлены. Например, для языка Python вам понадобится установить Python и среду разработки, такую как Visual Studio Code или PyCharm.
  2. Систему управления версиями Git. Вы можете скачать его с официального сайта и установить на свой компьютер.
  3. Необходимые библиотеки и программы, перечисленные в файле README или INSTALL репозитория на GitHub. Внимательно прочитайте эту информацию и установите все необходимые пакеты.

После установки всех зависимостей вы будете готовы приступить к сборке программы.

Конфигурация программы

После успешной установки программы из исходников Github, необходимо выполнить процесс ее конфигурации. В данном разделе рассмотрим основные шаги, которые позволят настроить программу под свои нужды.

  1. Настройка базы данных:
    • Создайте новую базу данных на вашем сервере или используйте уже существующую;
    • Укажите параметры подключения к базе данных в файле конфигурации программы;
    • Выполните необходимые миграции и заполнение базы данных при помощи специальных команд;
    • Проверьте подключение к базе данных и корректность работы.
  2. Настройка внешнего вида и функционала:
    • Отредактируйте файлы шаблонов, которые отвечают за отображение интерфейса программы;
    • Настройте доступные для пользователя функции и их параметры;
    • Измените цветовую схему и другие визуальные аспекты программы по своему усмотрению.
  3. Настройка безопасности:
    • Установите необходимые права доступа к файлам и папкам программы;
    • Работайте с паролями пользователей и аутентификацией;
    • Настройте SSL-сертификаты, если программе требуется защищенное соединение.
  4. Настройка бэкапов и синхронизации:
    • Определите частоту и место хранения резервных копий базы данных;
    • Установите планировщик для автоматического создания бэкапов;
    • Подумайте о вопросе синхронизации данных с другими системами или устройствами.
  5. Тестирование и отладка:
    • Используйте инструменты для проверки работоспособности и безопасности программы;
    • Обрабатывайте и исправляйте возникающие ошибки;
    • Установите логирование и мониторинг работы программы.

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

Сборка программы

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

  1. Первым шагом необходимо склонировать репозиторий с исходными кодами на своё устройство. Для этого можно воспользоваться командой git clone. Например:
git clone https://github.com/username/repository.git

Здесь https://github.com/username/repository.git — ссылка на репозиторий, который вы хотите склонировать.

  1. Затем необходимо установить все зависимости, необходимые для работы программы. Обычно в репозитории присутствует файл requirements.txt или package.json, в котором указаны все необходимые зависимости. Для установки зависимостей можно воспользоваться инструментами управления пакетами, такими как pip или npm. Например:
pip install -r requirements.txt

или

npm install
  1. После установки зависимостей необходимо выполнить сборку программы. Для этого обычно применяются сборщики или компиляторы, в зависимости от используемого языка программирования. Часто для сборки доступны команды типа make или build. Например:
make

или

python setup.py install
  1. После успешной сборки программы можно запустить её и проверить её работу. Для этого обычно используется команда run, start или execute. Например:
./program

или

python program.py

Теперь вы можете использовать собранную программу по своему усмотрению.

Это общая инструкция по сборке программы из исходников на GitHub. У каждого проекта может быть своя специфика, поэтому рекомендуется обратиться к документации или README файлу проекта, чтобы получить более подробные инструкции по сборке и запуску программы.

Запуск сборки

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

  1. Перейдите в корневую директорию проекта.
  2. Откройте командную строку (терминал) в этой директории.
  3. Убедитесь, что у вас установлены все необходимые зависимости для сборки программы. Это может быть описано в файле README или INSTALL проекта. Если зависимости не установлены, выполните команды для их установки.
  4. Выполните команду для сборки программы. Это может быть команда типа make или npm run build. В случае, если сборка проекта требует каких-либо дополнительных параметров, они должны быть указаны при вызове команды. Обратитесь к документации проекта для получения подробной информации о запуске сборки.
  5. После успешного выполнения команды сборки, вы получите готовую программу в виде исполняемых файлов, библиотек или других артефактов. Размещение собранных файлов может быть указано в документации проекта или в файле README.
  6. В работе сборанной программы могут потребоваться дополнительные настройки или запуск команд из командной строки. Ознакомьтесь с документацией проекта для получения инструкций по запуску.

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

Отслеживание процесса сборки

Чтобы отследить процесс сборки программы из исходников GitHub, следуйте следующим шагам:

  1. Перед сборкой:
    • Убедитесь, что у вас установлены все необходимые зависимости и инструменты для сборки программы. Обычно эти зависимости указаны в документации проекта.
    • Загрузите исходники программы с репозитория GitHub на свое устройство. Обычно это делается с помощью команды git clone или скачиванием архива проекта.
  2. Сборка:
    • Откройте терминал или командную строку и перейдите в каталог с исходниками программы.
    • Выполните команду сборки, указанную в документации проекта. Обычно это команда make или cmake.
  3. Отслеживание прогресса сборки:
    • Во время сборки программы в терминале или командной строке будут выводиться сообщения о выполнении каждого этапа сборки.
    • Обычно выводятся информация о компиляции исходных файлов, линковке библиотек, создании исполняемого файла и т.д.
    • Если процесс сборки успешен, в терминале или командной строке будет выведено сообщение о завершении сборки без ошибок.

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

Тестирование программы

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

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

После запуска программы проверьте следующие ее аспекты:

  1. Корректность работы основных функций:

    • Убедитесь, что программу можно успешно запустить и она не выдает ошибок при старте.
    • Проверьте работу основных функций программы, которые описаны в документации или README файле репозитория.
    • Если есть входные данные, введите их и убедитесь, что программа обрабатывает их верно и выдает ожидаемый результат.
  2. Графический интерфейс программы:

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

    • Проверьте, как программа обрабатывает ошибки, например, некорректные входные данные или отсутствие необходимых файлов.
    • Убедитесь, что программа выводит понятные и информативные сообщения об ошибках.
  4. Производительность:

    • Оцените скорость работы программы и ее ресурсоемкость.
    • Проверьте, что программа не вызывает зависаний или других проблем при работе с большими объемами данных.

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

После завершения тестирования рекомендуется поделиться результатами с командой разработки, отправив отчет о тестировании или создав issue в репозитории на GitHub. Это позволит ускорить процесс исправления ошибок и улучшения программы.

Проверка работоспособности

После того, как вы скачали исходники с GitHub и успешно собрали программу, необходимо провести проверку ее работоспособности.

Для этого выполните следующие шаги:

  1. Запустите программу, следуя инструкциям, указанным в документации или README файле проекта.
  2. Убедитесь, что программа запускается без ошибок и отображает ожидаемый результат.
  3. Протестируйте различные функциональные возможности программы, чтобы убедиться в их корректной работе.

Во время тестирования программы обратите особое внимание на следующие аспекты:

  • Проверьте, что все функции и возможности работают согласно требованиям и ожидаемому поведению программы.
  • Проверьте, что все зависимости и библиотеки, указанные в файле зависимостей проекта, установлены и работают корректно.
  • Проверьте, что программа обрабатывает ошибки и исключения без сбоев, выводит понятные и информативные сообщения об ошибках.
  • Проверьте, что программа не вызывает зависаний или падений при работе с большими объемами данных или в условиях высокой нагрузки.

Если в ходе проверки работоспособности обнаружены ошибки или неполадки, обратитесь к разработчикам проекта. Вы можете сообщить о проблеме, создав issue на странице проекта на GitHub или связавшись с разработчиками напрямую.

После успешной проверки работоспособности проекта вы готовы использовать его в своей работе или в качестве основы для развития и доработки программы.

Исправление возникающих ошибок

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

1. Ошибка отсутствующих зависимостей

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

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

2. Ошибка компиляции

Другой распространенной ошибкой является ошибка компиляции исходников. Программа может не компилироваться из-за ошибок в коде или неправильных настроек среды разработки.

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

3. Ошибки сборки

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

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

4. Ошибка выполнения программы

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

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

5. Ошибка установки программы

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

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

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

Вопрос-ответ

Какие инструменты нужны, чтобы собрать программу из исходников GitHub?

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

Можно ли собрать программу из исходников GitHub без использования командной строки?

Да, это возможно в некоторых случаях. Некоторые проекты на GitHub имеют графические пользовательские интерфейсы (GUI), которые облегчают процесс сборки программы. В таком случае вам может потребоваться только загрузить исходные коды, установить необходимые зависимости и запустить скомпилированную программу. Однако большинство проектов все же требуют использования командной строки для выполнения команд сборки.

  • Как скопировать тему windows 10
  • Как скопировать windows с флешки на флешку ultraiso
  • Как скопировать лицензию windows 10
  • Как скопировать dvd диск на компьютер windows 7
  • Как скопировать текст с ошибки windows