но в main у меня хедеры подключается напрямую, а не moduleA/moduleA.h и тп. Почему так?
О, так вы header namespace хотите себе сделать? А что вы для этого предприняли? У вас с помощью target_include_directories инклуд-папка выставляется в include, и непосредственно в ней и лежит moduleA.hpp. Откуда интересно должен появиться КАТАЛОГ moduleA? Его нужно для этого создать, например как в libuv делают. Правда тогда нет смысла называть хедер moduleA.hpp, раз он и так лежит в подпапке с таким именем (см. ту же ссылку с хедерами libuv, там как раз правильно сделано - один "общий" хедер uv.h и каталог uv со всеми остальными, которые уже имеют более специфичные названия).
iihaarr А как вы оформили этот публичный хедер с точки зрения CMake? Как res2001 правильно указал, CMake оперирует целями. Этот публичный хедер - он собственно чем является с точки зрения workflow сборки в C++? Он является публичным API какой-то библиотеки? Есть ли ещё хедеры? Есть ли компилируемая часть? Оформлено ли это в таргет? Что вы вообще называете "Модулем" - это самостоятельные таргеты (ну т.е. например Модуль А - это статическая библиотека, а Модуль B - исполняемый бинарь) или просто подпапки с файлами исходников?
Или может у вас в Модуле А просто константа описана вроде `set(MY_HEADER_PATH ...)`, и вы хотите к ней доступ получить из Модуля B, мы ж не знаем.
Вы настолько обобщили вопрос, что ответить на него более конкретно просто невозможно.
Я хотел бы спросить, как привести этот HDD к одному формату ( NTFS ), без потери данных?
Вы хотите перенести файлы с файловой системы ext4 на NTFS, правильно понимаем? Мне кажется лучше это сделать через ещё один диск/том. Т.е. перенести туда всё с ext4, а затем убить этот раздел с ext4, и расширить раздел с NTFS, это можно будет сделать и без доп. инструментов, штатными средствами (т.к. после раздела с NTFS будет только пустое место после удаления раздела с ext4).
mayton2019 золотые слова... А то всё попилят на 8000 сервисов по 500 строк кода каждый, а про graceful degradation и прочие полезные штуки как-то и не подумали.
SQL-база - это не Эксель. Вы вставляете записи целиком (эти записи ещё даже кортежами называются, в отличие от строчек в экселевской таблице). Вы НЕ вписываете значения в какие-то отдельные ячейки, будто это ячейка таблицы в Экселе.
Константин Ну во-первых вам система не даст это сделать, пока ваш профиль примонтирован как куст реестра (т.е. пока вы не выйдете и не зайдёте за другого пользователя), а во-вторых, если вы это как-то всё-таки сделаете, профиль отвалится. Тогда нужно будет поменять везде в реестре ссылки на него, что для вас будет нетривиально.
werwer Советую остыть по поводу ООП и максимы "всё - объект", это один из самых дурацких абсолютов, которые я только встречал.
Объекты - это про абстракцию и изоляцию, т.е. когда хочется контролировать, как обрабатываются конкретные данные, способ управления сложностью так сказать.
Лучше читайте про более базовые вещи, поизучайте типизацию например, поизучайте TypeScript в конце-концов. И да, теорию тоже нужно читать, Stalker_RED привёл отличные примеры, когда язык вас просто "обманул" - вы пытались опытным путём найти логику там, где её в принципе быть не может (typeof null - это тупо ошибка реализации, которую узаконили в качестве фичи языка лишь бы не ломать совместимость).
О, так вы header namespace хотите себе сделать? А что вы для этого предприняли? У вас с помощью target_include_directories инклуд-папка выставляется в include, и непосредственно в ней и лежит moduleA.hpp. Откуда интересно должен появиться КАТАЛОГ moduleA? Его нужно для этого создать, например как в libuv делают. Правда тогда нет смысла называть хедер moduleA.hpp, раз он и так лежит в подпапке с таким именем (см. ту же ссылку с хедерами libuv, там как раз правильно сделано - один "общий" хедер
uv.h
и каталогuv
со всеми остальными, которые уже имеют более специфичные названия).