сборки C++ приложений? Я использую make с Makefile, но пробелема в том, что я прописываю всё вручную, или полагаюсь на конфиги проектов VSCode, + есть НЕ системные библиотеки, которые не хотелось бы компилировать вручную, а подключать через какой-нибудь пакет-менеджер,
Попытался использовать Conan, но меня он разочаровал, документация полное дерьмо, если просто шаг за шагом делать что-либо, то на второй же команде получаю ошибку, благо --help хоть как-то помогает. Как вы билдите проекты, добавляете новые библиотеки в C++? Какой для этого лучший пайплайн?
P.s. Направление приложений кросплатформенные приложения с GUI, но не встроенные интерфейсы, или что-то такое
Меня зовут Александр. Я использую cmake
Привет, меня зовут Дмитрий. Я использую cmake
cmake + ninja Попытался использовать Conan, но меня он разочаровал, документация полное дерьмо, если просто шаг за шагом делать что-либо, то на второй же команде получаю ошибку, благо --help хоть как-то помогает. вы в одном предложении с большего описали все сборочные системы для С++ и их генераторы
Привет, меня зовут 🐈. Я использую cmake
Александр, предположим, что я хочу использовать какую-либо библиотеку в своём проекте, но мне нет нужды её ставить глобально в систему, я бы хотел быстро её подключить в текущий проект без клонирования репозитория проекта, то есть буквально прописав: pkgmanager add packagename-2.0 Без создания конфигов вручную, когда приходится создавать несколько конфигов, запускать одну команду, потом редактировать другой, снова запускать команду, создавать ещё один конфиг и т.д.?
Грустно как-то
Как у vcpkg в плане Linux'a, не брыкается?
https://t.me/supapro/795822
Я слепой, соррян, банерная слепота на закрепы
CMake. make выкини на помойку
Про пакетный менеджер - всё сложно, но попробуй vcpkg или conan
Cmake может автоматически сгенерировать CMakeList.txt, или необходимо всегда создавать его вручную/IDE?
Из чего он тебе сгенерирует его?
CMakeLists - это источник истины, твой способ общения с cmake. ты кроме него (или них, если несколько) вообще ничего не должен писать в простейшем случае
Для начала нужно поставить себе какой-нибудь "проджект-менеджер" - CodeBlocs, QtCraetor, VsCode, etc... И начать писать свои хеллоуин ворды. Смаки потом Читать доки, хелпы и екзамелы. И перестать придуриваться
Например, по шаблону какой-нибудь "типичный" конфиг типа указал стандрат С++, cmake создал сам файлик, добавил туда какие-то типичные директивы, что-то ещё
обычно вручную. Вообще для одного приложения каркас чертовски простой - ты просто указываешь что-то по вот такому шаблону: cmake_minimum_required(VERSION 3.16) #ну или еще какая-то, в новых проектах обычно от 3.10 до 3.27 project($НАЗВАНИЕ_ПРОЕКТА) add_executable($НАЗВАНИЕ_ПРОГИ $СПИСОК_ВСЕХ_ЦППШНИКОВ_И_АШНИКОВ) target_include_directories($НАЗВАНИЕ_ПРОГИ PUBLIC|PRIVATE $СПИСОК_ДИРЕКТОРИЙ_ОТКУДА_ИЩУТСЯ_НЕСТАНДАРТНЫЕ_ХИДЕРА) target_compile_definitions($НАЗВАНИЕ_ПРОГИ PUBLIC|PRIVATE $СПИСОК_ДОПОЛНИТЕЛЬНЫХ_ДЕФАЙНОВ) Но дальше начинается у всех свое,линковка разных библиотек и все такое, кроме того, часто проект состоит из многих таргетов(это как раз программы или библиотеки), они раскиданы по директориям и так далее. Поэтому увы, CMake - это несложный, но полноценный язык программирования, не просто конфиг, его надо писать руками, и желательно головой
cmake_minimum_required(VERSION какая у тебя щас стоит) project(hello-world CXX) add_executable(hello src/hello.cpp) чё тут генерировать?
Что есть типичный? Вообще-то cmakelist.txt это и есть входной файл для cmake.
Ну вот это. Он же умный и сам догатается, что товарищ имелл в виду, но писать товарищ не умеет.
Да я понимаю, что не сложно, но хотелось бы выполнить одну команду, а не лезть в блокнот искать директивы для CMakeLists.txt
ну базовые мы тебе уже показали, когда нужно что-то большее - нужно гуглить
gcc <стая ключиков> - получится одна строка.
Ахах, ну не прям так
Ты уж определись
и то не одна, если приложение с модулями, например =)
ну засунь их всех в одну строчку
Есть утилита CMakeGUI, она позволяет сгенерировать CMake Lists в режиме Wizard.
Добавь ещё target link libraries
Она очень плохая. Скорее для тестирования скрипта - фактически все переменные просто разворачивает. Легче сами смак.тхт читать
Я не говорил что он хороший
сначала хотел было, потом понял что придется много чего пояснять. Кмк дальше уже лучше статью какую кинуть =)
Обсуждают сегодня