170 похожих чатов

Привет всем, меня зовут Артём Синицин. Какие системы вы используете для

сборки C++ приложений? Я использую make с Makefile, но пробелема в том, что я прописываю всё вручную, или полагаюсь на конфиги проектов VSCode, + есть НЕ системные библиотеки, которые не хотелось бы компилировать вручную, а подключать через какой-нибудь пакет-менеджер,
Попытался использовать Conan, но меня он разочаровал, документация полное дерьмо, если просто шаг за шагом делать что-либо, то на второй же команде получаю ошибку, благо --help хоть как-то помогает. Как вы билдите проекты, добавляете новые библиотеки в C++? Какой для этого лучший пайплайн?

P.s. Направление приложений кросплатформенные приложения с GUI, но не встроенные интерфейсы, или что-то такое

34 ответов

36 просмотров

Меня зовут Александр. Я использую cmake

Привет, меня зовут Дмитрий. Я использую cmake

cmake + ninja Попытался использовать Conan, но меня он разочаровал, документация полное дерьмо, если просто шаг за шагом делать что-либо, то на второй же команде получаю ошибку, благо --help хоть как-то помогает. вы в одном предложении с большего описали все сборочные системы для С++ и их генераторы

Привет, меня зовут 🐈. Я использую cmake

устрица молекулы- Автор вопроса
Alexander Pshenichnikov
Меня зовут Александр. Я использую cmake

Александр, предположим, что я хочу использовать какую-либо библиотеку в своём проекте, но мне нет нужды её ставить глобально в систему, я бы хотел быстро её подключить в текущий проект без клонирования репозитория проекта, то есть буквально прописав: pkgmanager add packagename-2.0 Без создания конфигов вручную, когда приходится создавать несколько конфигов, запускать одну команду, потом редактировать другой, снова запускать команду, создавать ещё один конфиг и т.д.?

устрица молекулы- Автор вопроса
🐈
vcpkg + cmake

Как у vcpkg в плане Linux'a, не брыкается?

https://t.me/supapro/795822

устрица молекулы- Автор вопроса
Ivan Sokolov
https://t.me/supapro/795822

Я слепой, соррян, банерная слепота на закрепы

CMake. make выкини на помойку

Про пакетный менеджер - всё сложно, но попробуй vcpkg или conan

устрица молекулы- Автор вопроса

Cmake может автоматически сгенерировать CMakeList.txt, или необходимо всегда создавать его вручную/IDE?

устрица молекулы
Cmake может автоматически сгенерировать CMakeList....

CMakeLists - это источник истины, твой способ общения с cmake. ты кроме него (или них, если несколько) вообще ничего не должен писать в простейшем случае

устрица молекулы
Cmake может автоматически сгенерировать CMakeList....

Для начала нужно поставить себе какой-нибудь "проджект-менеджер" - CodeBlocs, QtCraetor, VsCode, etc... И начать писать свои хеллоуин ворды. Смаки потом Читать доки, хелпы и екзамелы. И перестать придуриваться

устрица молекулы- Автор вопроса

Например, по шаблону какой-нибудь "типичный" конфиг типа указал стандрат С++, cmake создал сам файлик, добавил туда какие-то типичные директивы, что-то ещё

устрица молекулы
Cmake может автоматически сгенерировать CMakeList....

обычно вручную. Вообще для одного приложения каркас чертовски простой - ты просто указываешь что-то по вот такому шаблону: 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.

Ivan Sokolov
cmake_minimum_required(VERSION какая у тебя щас ст...

Ну вот это. Он же умный и сам догатается, что товарищ имелл в виду, но писать товарищ не умеет.

устрица молекулы- Автор вопроса
Ivan Sokolov
cmake_minimum_required(VERSION какая у тебя щас ст...

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

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

ну базовые мы тебе уже показали, когда нужно что-то большее - нужно гуглить

Viktor Chyzhdzenka
gcc <стая ключиков> - получится одна строка.

и то не одна, если приложение с модулями, например =)

устрица молекулы
Cmake может автоматически сгенерировать CMakeList....

Есть утилита CMakeGUI, она позволяет сгенерировать CMake Lists в режиме Wizard.

Ilya Zviagin
Есть утилита CMakeGUI, она позволяет сгенерировать...

Она очень плохая. Скорее для тестирования скрипта - фактически все переменные просто разворачивает. Легче сами смак.тхт читать

Ilya Zviagin
Добавь ещё target link libraries

сначала хотел было, потом понял что придется много чего пояснять. Кмк дальше уже лучше статью какую кинуть =)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта