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

Вы исходники и заголовки в одной папке держите? или выделяете

заголовки в отдельную папку includes? или ещё и исходники в отдельную папку src?

18 ответов

6 просмотров

Публичные хэдеры отдельно, приватные рядом с сорцами. Сорцы в src, публичные хэдеры в include

Пашечка
Публичные хэдеры отдельно, приватные рядом с сорца...

Такс, а если, несколько либ, но с похожим интерфейсом? project ..module1 ….include ……project ……..module1 ……….some_include.hpp ..module2 ….include ……project ……..module2 ……….another_include.hpp

n
Такс, а если, несколько либ, но с похожим интерфей...

Ну, у нас так сделано: project1 include library1 a.h library2 b.h src library1 a_priv.h a.cpp library2 b_priv.h b.cpp project2 include library3 c.h library4 d.h src library3 c_priv.h c.cpp library4 d_priv.h d.cpp

Пашечка
Ну, у нас так сделано: project1 include ...

я чуть по другому делаю. сорцы либы в отдельном каталоге, но c "подкаталогом" в include: project lib lib1 include lib1 a.h src a.c b_priv.h

Maxim Elchugin
я чуть по другому делаю. сорцы либы в отдельном ка...

Ваша схема имхо лучше, она удобнее при предоставлении dev пакета вашего ПО в линуксе, ибо ложится на стандартную схему файловой иерархии линукса. Я пытался и у нас пропихнуть - мне не дали)

Пашечка
Ваша схема имхо лучше, она удобнее при предоставле...

чем мотивировали отказ? на предыдущей работе "подсмотрел" такую структуру. Но там люди пошли дальше, локально есть либа, и там в include сразу хедера. А вот на этапе конфигурации (вроде в этот момент) CMake, в "кеше" воссоздаётся такая структура. Не помню, зачем сделали так сложно. Может чтобы не забыть создать подкаталог в include

Пашечка
"Так удобно"

печалька.. :( Желаю вам упорства и "схождения звёзд на небосводе", чтобы люди осознали, что по новому УДОБНЕЕ :)

Пашечка
Ну, у нас так сделано: project1 include ...

Я вот никогда не понимал этого разделения =\ Особенно в свете современных IDE. Одно дело когда это действительно 3д парти либы и тебе в них никогда не надо будет лезть... Но это филосовская шиза, в них скорее всего придеться лезть и прыгать между папками - та еще дурость. =\

SetPf
Я вот никогда не понимал этого разделения =\ Особе...

Одно волшебное слово, от которого веет романтикой и приключениями: legacy... :)

Вот здесь есть голосование за два подхода с их описанием сообщением ниже

Ramil-Rizvanov Автор вопроса
Ofee Oficsu
Вот здесь есть голосование за два подхода с их опи...

большое спасибо, полезно, мне canonical по духу ближе. Выделять публичный includes вижу смысл если пишешь библиотеку и нужно отдать пользователю сухую папку с заголовками

Ramil Rizvanov
большое спасибо, полезно, мне canonical по духу бл...

>> нужно отдать пользователю сухую папку с заголовками На самом деле, это совсем не обязательно. Я обычно разделяю публичные и приватные заголовки средствами самого CMake, для сложной иерархии каталогов понадобилось всего несколько строк функции, которая устанавливала их, сохраняя корректную иерархию. Может быть, сейчас и этого уже делать не нужно – не проверял

Ramil-Rizvanov Автор вопроса
Ofee Oficsu
>> нужно отдать пользователю сухую папку с заголов...

сейчас остановился на такой схеме, критикуйте |_CMakeLists.txt | |_alphalib | |_includes | |_alpha.h | |_CMakeLists.txt | |_alphaimpl.h | |_alpha.cpp | |_myapplib | |_CMakeLists.txt | |_myapp.h | |_myapp.cpp | |_myapp | |_main.cpp | |_myapptests | |_myapptest1.cpp

Ramil-Rizvanov Автор вопроса
Ramil Rizvanov
критики нет? лейаут совершенный?

Это же вкусовщина - идеальных лейтаутов не существует)

Anatoly Shirokov
фиговый лейаут

И тут я соглашусь )

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
Доброе время суток! у меня тут иноды закончились. и понял почему по сути кстит, я периодически очищаю постгрес и сентри контайнер: postgres=# DELETE FROM nodestore_node WHER...
Юсиф Насиров
9
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Чет мне ссыкотно опять Rainlab.User в проект ставить. Кто знает, опять наотъебись все сделали или после обнов пользоваться можно?
Black Cat
10
Какой дос блять?
007
9
lazarus-3.2.0/gtk, linux патч "имя проекта по умолчанию project1 -> prj" день добрый не нравится "именя проекта по умолчанию" (project1), к.раз приходится переименовывать (н...
livontiy
5
Карта сайта