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

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

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

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

34 ответов

25 просмотров

Меня зовут Александр. Я использую 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

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

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта