Как собрать приложение из исходников
Блог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 [11962 просмотра]
Как собрать приложение из исходников?
Подскажите. как мне собрать проект в Android студии из этих файлов в рабочее состоянии.
Заранее спасибо, за помощь.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как собрать android приложение из исходников?
Здравствуйте. Скачал исходный код приложения на просторах гитхаба.
Как собрать приложение с исходников
Всем привет Eсть одно приложение написанное на Питоне (исходники здесь.
Как собрать проект из исходников
Добрый день ! Подскажите пожалуйста, как собрать и корректно запустить на выполнение проект.
Как собрать проект из исходников
Добрый день. У меня есть проект, точнее 3 файла. Main.cpp #include "func.h" int main()
29 / 30 / 15
Регистрация: 24.01.2018
Сообщений: 132
Создается проект, настраивается, и затем все, от манифеста и до нативных либ и ассетов, перетаскивается в него.
Потом пытаемся скомпилировать, получаем гору ошибок (сотни — тысячи), начинаем их исправлять все подряд применяя разные приемы: где-то надо настроить, где-то вручную поправить, где-то взять другой декомпилятор и из него вставить кусок кода, где-то вообще выкинуть весь декомпилированный пакет и заменить либой, которая и так в открытом доступе.
Нужно иметь очень приличный опыт. Кроме компиляции нужно освоить отладку smali. Приложение немаленькое, судя по скриншоту.
Если патч требуется небольшой, то проще сделать его в smali с помощью apktool, а не декомпилировать полностью.
Вообще по теме можно целую книгу писать.
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
Сообщение от alexey-piterski
как мне собрать проект в Android студии из этих файлов в рабочее состоянии
никак, Android студия не соберет эти файлы. Вам нужны какие-то другие инструменты. Или создать проект с package скачанного приложения, внимательно копировать туда файлы только из того package, а все другие зависимости подключать в gradle файле. Короче, если возьметесь то долгая кропотливая работа вам обеспечена.
Как собрать программу из исходников
По совету с форума решил написать данную статью. Действительно, как-то даже и забыл описать такой процесс как сборка программ из исходных кодов. Все новички рано или поздно сталкиваются с такой проблемой: программы в стандартном репозитории нет, а в сети она существует только в виде исходных кодов, и готовых сборок под дистрибутив нет. Многие не решаются даже пытаться собрать программу из исходников самостоятельно, считая, что этот процесс не для их ума. А ведь это на самом деле очень просто, нужно запомнить всего 3 команды.
Итак, нам нужен исходный код программы, обычно он поставляется в архивах (например, tar.gz), распакуем наш архив programm.tar.gz:
tar -xf programm.tar.gz
Теперь перейдем в директорию с распакованными файлами:
cd programm
Далее нужно запустить конфигуратор, но для его работы точно потребуется пакет build-essential, установим его:
sudo apt-get install build-essential
./configure
Смотрим на вывод конфигуратора, ищем ошибки. Если все прошло удачно, в директории должен создаться makefile, после этого запускаем make:
make
После того как make соберет программу, ее нужно установить:
sudo make install
Вот и все, программа установлена, можно запускать и пользоваться 😉
Таким образом установка программ из исходников сводится в большинстве случаев к выполнению всего лишь 3 команд:
./configure
make
sudo make install
Ничего сложного в установке программ из исходников в Linux нет. Да и вообще, сам по себе Linux не такой уж и сложный в понимании.
Как собрать приложение из исходников
Если вы решили не конвертировать сайт в мобильное приложение, а хотите сделать настоящую нативку, прикупив какчественный исходник у разработчика, то следуйте по этим простым шагам:
- Скачайте Android Studio
- Выберите ваш проект
- Отредактируйте данные
- Нажмите компилировать APK
Иногда в сборке приложений из исходников может пойти что-то не так как планировалось.
Ошибки компиляции
Самый распространённый тип ошибок. Разработчик, который создавал проект — это профессионал, у которого уже настроена среда окружения для сборки и установлены все необходимые зависимости.
Ошибки в коде
Покупка исходника никак не гарантирует безошибочную работу приложения. Проект мог быть разработан несколько лет назад, и просто не запустится на последней версии Android.
Старый исходники
Многие из исходников технически устаревают. Прогресс не стоит на месте и компоненты, которые используются постоянно обновляются. При этом новые версии могут быть не совместимы со старыми компонентами.
Поэтому вы идёте на фриланс, чтобы найти того, кто сможет собрать приложение из исходника.
Но, на фрилансе исполнители:
И размещаете задание
1) Мне нужно собрать приложение в Android Studio. (Исходный код есть)
2) Переведите на русский язык, потому что это делается только для русскоязычной аудитории!
3) Загрузить приложение Google Play с Google Play Сonsole!
Также есть VPS и простой хостинг!
Кроме того, все учетные записи — Google AdMob — Google analytics и т. Д
Спустя 1 год
Собрать приложение для Android — исходный код есть (можете добавить свои идеи)
Приложение должно работать без сбоев и крашей / оптимизировано!
Добавить регистрацию через ВК
Обговорим все с тем кто реально уверен что сделает все быстро! Новорегам на Kword просьба не писать!
С подобными трудностями во можете столкнуться при сборке из исходников
типичные задания на биржах фриланса
“ Памагити сабрать прилу из исходников. Я установил ету чёртову Андроид Студию, но там куча всяких кнопок. Кто это ваапще придумал? ”
“ Я нормальная девушка. а не хакир какой-та. Я проста хачу прилажение для своего сайта. ”
“ На работе поручили сделать корпоративное приложение. Купили исходники — сказали что всё легко и надо только скачать андроид студию и нажать кнопку «build my super app». Я не нашла кнопку. Хуже того я не смогла установить андроид студию! ”
“ 10 раз пересобирал, но оно продолжало вылетать. Лутшеб сразу заплатил ”
“ Я могла бы гулять с подругами весь день и радоваться жизни, еслиб нашла сразу етот сайт! ”