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

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

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

18 ответов

22 просмотра

Публичные хэдеры отдельно, приватные рядом с сорцами. Сорцы в 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
фиговый лейаут

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
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
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта