Как скомпилировать проект с github
БлогNot. Как собрать проект C++ с github из исходников и подключить его к Visual Studio
Как собрать проект C++ с github из исходников и подключить его к Visual Studio
P.S. В новых сборках Visual Studio проекты из репозиториев открываются просто из меню Файл — Клонировать репозиторий. В статье речь идёт о ситуации, когда так сделать невозможно.
Благодаря менеджеру пакетов winget, уже входящему в актуальные сборки масдайки, теперь в Windows 10 можно инсталлировать приложения одной простой консольной командой (см. также доку от Микрософта).
Но мы рассмотрим сейчас ситуацию, когда у нас есть только ссылка на исходники проекта, скажем, на Гитхабе (возьмём для примера библиотеку для простых чисел primesieve) и нужно каким-то образом «вручную» скомпилировать внешний проект в своей Studio, чтобы воспользоваться его возможностями в своём приложении.
В противном случае, конечно же, нестандартный include вроде этого, который вы нашли в коде-образце
#include
работать не будет ни за что.
Первым делом скачаем все исходники внешнего проекта «как есть» в архиве .zip, для этого у нас на гитхабе есть кнопка «Download ZIP»:
Как загрузить проект с github в архиве .zip
Развернём проект, не создавая новой папки, если у вашего архиватора нет такого же пункта меню, просто сотрите предлагаемое архиватором имя новой папки, потому что папка уже есть в архиве:

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

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

Командная строка разработчика в 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 #include #include #include void print_diffs(const std::vector& vec) < for (size_t i = 0, n = vec.size(); i != n; ++i) < if (i != 0) std::cout std::cout int main() < std::vector asc, desc; std::vector
Ответы вышли такие:
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 [9924 просмотра]
Скомпилировать проект с GitHub
Прошу помочь скомпилировать проект с GitHub, я не разбираюсь в Visual Studio, но очень нужна эта программа.
Пытался скомпилировать сам, но постоянно сыпятся ошибки.
Буду очень благодарен, если кто поможет.
(нужна именно эта ветка, а не оригинал)
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Скомпилировать с github
https://github.com/hardhub/acer-predator-sense-w7 Скомпилируйте пожалуйста Setup.exe, думаю сами.
Как подключить проект с github в свой проект
Как подключить проект с github в свой проект? К примеру вот этот https://github.com/vknet/vk .
Как выложить проект в Github?
народ кто шарит как выложить проект со студии в github? и что такое гитинг бинарников и obj файлы?
Добавление ссылки на github проект в Visual Studio 2015
есть репозиторий https://github.com/zawodskoj/GoddamnConsole как подключить к проекту
Администратор
![]()
16491 / 12952 / 5095
Регистрация: 17.03.2014
Сообщений: 26,378
Записей в блоге: 1
alexdevilrock, скачать уже откомпилированную версию нельзя?
1452 / 845 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
Сообщение от alexdevilrock 
Пытался скомпилировать сам, но постоянно сыпятся ошибки.
Ну ты ошибочки покажи!
Администратор
![]()
16491 / 12952 / 5095
Регистрация: 17.03.2014
Сообщений: 26,378
Записей в блоге: 1

Сообщение было отмечено alexdevilrock как решение
Решение
alexdevilrock, не сообразил что ссылка ведет на другой репозиторий. Лови (ссылка удалена) откомпилированную версию. Работает или нет она я не проверял.
О, очередной начинающий хакер
| Меню пользователя @ lvlkoo |
@ OwenGlendower
Сообщение от lvlkoo 
О, очередной начинающий хакер
Почему ты так решил?
| Меню пользователя @ OwenGlendower |
| Читать блог |
Сообщение от OwenGlendower 
Почему ты так решил?
Много таких повидал, которые пытаются получить доступ к чужому аккаунту стим используя десктопный аутентефикатор. Ооой а сколько мне друзей дотеров и ксеров пишут мол смотри какая програмулина, как ее использовать, как ломать аккаунты итд, тыжпрограммист»
| Меню пользователя @ lvlkoo |
Регистрация: 23.09.2016
Сообщений: 10
Сообщение от lvlkoo 
Много таких повидал, которые пытаются получить доступ к чужому аккаунту стим используя десктопный аутентефикатор. Ооой а сколько мне друзей дотеров и ксеров пишут мол смотри какая програмулина, как ее использовать, как ломать аккаунты итд, тыжпрограммист»
Вообще хз с чего ты это взял, как писали выше можно скачать уже готовую программу.
А этот отличается от оригинала только тем, что у него есть функция импорта с другого аутентификатора.
Просто хочу перейти с одного на другой, так как с предыдущим есть некоторые проблемы.
И я немного не понимаю смысла, для чего тебе пишут эти «хакеры», типо в гугле их чтоли забанили? И как с этим связан я, если использую эту программу, то хочу кого то взломать чтоли? Там нет такой функции.
Администратор
![]()
16491 / 12952 / 5095
Регистрация: 17.03.2014
Сообщений: 26,378
Записей в блоге: 1
alexdevilrock, некоторые программы можно использовать как во благо так и во вред. Данная программа видимо одна из таких. Отсюда и комментарии lvlkoo.
Регистрация: 23.09.2016
Сообщений: 10
Сообщение от OwenGlendower 
alexdevilrock, некоторые программы можно использовать как во благо так и во вред. Данная программа видимо одна из таких. Отсюда и комментарии lvlkoo.
С этим я согласен, но так можно сказать чуть ли не про любую программу.
Ведь не с помощью нее идет взлом, нужно получить доступ к чужому пк и с него украсть файлы этой программы, для того чтобы получить доступ к аккаунту. А так можно сказать и про куки с браузера и про много чего еще.
Кстати спасибо тебе огромное, сейчас буду тестить.
Добавлено через 2 часа 33 минуты
Эх жаль не пашет, скорее всего из за того что автор винаута изменил экспорт.
Попробовал запустить старую версию и она ругается на новые файлы.
Все равно спасибо за помощь, можете закрыть тему.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как скомпилировать C# проект в .exe файл?
Как скомпилировать C# проект в .exe файл? И взять, скопировать и запустить на любом компьютере без.
Объединить исходные файлы в проект и скомпилировать
помогите пожалуйста, с реализацией, не получается объединить, подскажите как и что мне делать чтобы.
Нужно скомпилировать проект под Net 2.0
У меня нету 2.0 и не ставится. Кто нить прокомпильте мне плиз под Net 2.0
Не могу скомпилировать проект в VS 2017 Community
Создаю библиотеку Class Library (.Net Standard). Framework 4.5.2 using (SqlConnection conn = new.
Можно ли скомпилировать проект так, чтобы он вместе с собой открывал файл
Можно ли скомпилировать проект так, чтобы он вместе с собой открывал файл. Файл и проект — одно.
Скомпилировать проект с OleDB, чтобы не требовался установленный пакет OleDB
Добрый день! Возможно ли скомпилировать проект, который работает с базами данных с помощью OleDB.
Saved searches
Use saved searches to filter your results more quickly
Cancel Create saved search
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Maxx53 / SCMBot Public
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Как скомпилировать файлы? #550
livepo88 opened this issue Nov 28, 2015 · 7 comments
Как скомпилировать файлы? #550
livepo88 opened this issue Nov 28, 2015 · 7 comments
Comments
livepo88 commented Nov 28, 2015
No description provided.
The text was updated successfully, but these errors were encountered:
livepo88 commented Nov 28, 2015
Речь идёт про SCM 😀 То что ыт мне в нижней теме сказал, я скачал, нашел там нужные строчки, изменил, сохранил, но теперь то нужен последний шаг 🙂 скомпилировать в программу это всё. но вопрос как?) Помоги пожалуйста
Igzibed commented Nov 28, 2015
Я так понял ты в блокноте их открыл и изменил. Скачай Visual Studio желательно поновее. Открой файл проекта. Это файл который над папками находится .sln. В Visual Studio можешь ничего не менять раз так уже поменял. Зайди там в меню Сборка-> Собрать решение или F6 нажми. Как только внизу будет написано что успешно собрано зайди в bin\Debug там лежит готовая программа.
rnd0m commented Nov 28, 2015
всё так просто оказывается? у меня всё никак до этого руки не доходили, хотя визуал уже давно скачал и установил. ну что ж, вынужден поблагодарить @Rocky54 — своим ничегонезнанием и методом обучения «забанен в гугле», ты облегчил мне предстоящую задачу ). Ну и @Igzibed конечно спасибо — обычно в таких случаях на гугл посылают
livepo88 commented Nov 28, 2015
@rnd0m присоединяюсь, огромное спасибо @Igzibed за объяснения, хоть один добрый человек. А то всем жалко сказать.
livepo88 commented Nov 28, 2015
@Igzibed
Я да, в блокноте изменил, и это не помогло. Так же ошибки, а как в VISUAL STUDIO изменить?
Igzibed commented Nov 28, 2015
@Rocky54 Точно так же как и в блокноте, сделай поиск по строке. В меню Правка->Поиск и замена-> Найти в файлах. Внизу если доп окна не закрывал то высветится список соответствий в файлах, щелкаешь по тому что нужно и тебя перекидывает на файл с тем кодом, там меняешь и компилируешь по новой.
Сборка небольшого проекта из GitHub
Доброго времени суток. Собираю проект https://github.com/leonahi/stream_cipher_a5_1 в Qt(проект без Qt, C++, MinGw 32bit)
Создаю проект c qMake, main.cpp не заменяю
Добавляю все файлы из папки
Компилирую
Срабатывает условие :
/* * * Read plain text from binary file - argv[1] * */ if(argc != 2)
Ккак мне нужно выполнить чтение из файла если с проектом прилагается test_file_binary.txt?
Отслеживать
задан 18 апр 2018 в 20:29
31 1 1 золотой знак 1 1 серебряный знак 5 5 бронзовых знаков
передать его в аргументах командной строки, очевидно.
18 апр 2018 в 21:06
В смысле это как?
19 апр 2018 в 6:35
Допустим у вас скомпилировался проект и получился бинарник a.exe, вам нужно запустить его из командной строки командой: «a.exe test_file_binary.txt», тогда программе передастсе имя файла и всё будет работать.
19 апр 2018 в 6:37
@Gunik если интересует решение в рамках IDE, то где-то там в настройках проекта должна быть настройка вроде «параметров запуска»
19 апр 2018 в 8:17
@ zcorvid попробовал.` Error: Unable to open filetest_file_binary.txt ` пишет в командной строке
19 апр 2018 в 9:13
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
В общем решил попробовать «собрать» ваш пример. Работаю тоже в «Qt» :3.
Разобью на действия :
1. Скачал проект
2. Разархивировал проект
3. В той же директории создал проект на С++ (вторая картинка)
4. После чего добавил в проект все файлы кроме Makefile файла. Я так и не понял в чём именно был собран скачанный проект и не стал заворачиваться с ним
5. Также заменил файл main.cpp на разархивированный из проекта.Можно также просто скопировать вставить с заменой всего содержимого.
6. Воаля всё собирается :3
7. Также желательно в ту папку в которой лежит собранный проект (в винде .exe, в линуксе ?? ) положить тестовые текстовые файлы (.txt)
8. В винде : После чего можно зайти в командную строку (cmd) и зайти в папку в которой собран проект (через cmd разумеется) и ввести
команду exper.exe test_file_binary.txt
В линуксе всё печальней 🙁
Выполняем все действия до 7 пункта. После чего сталкиваемся что исполнительного файла как такового полностью нету. В винде .exe файл при «запуске» сразу говорит каких файлов тебе не хватает после чего, ты просто копируешь их из папки где лежит компилятор в директорию собранного проекта. В линуксе надо устанавливать linuxdeployqt ( sudo apt-get install libqt5webkit5-dev ) после чего выполнять команду подтягивающую библиотеки, но увы у меня не вышло (третья картинка), притом что у меня linuxdeployqt установился.
Я пошёл другим путем, просто «загрубил» программу и закоментировал все вызовы argv[1] заменив их созданным буфером с названием файла(который лежит в директории программы ) char ess[256] = «test_file_binary.txt»;
// ifstream file(argv[1]); ifstream file(ess);
Ну и вот картинка с результатом.

Создаю проект.
Ошибка 🙁 
