Структура каталогов для библиотеки C++

Это о накоплении, не эффективности очереди.

Fastpass работает, потому что он делает отдельные объекты в очереди более эффективными в "потреблении" чего-то. Это не так очередь как процессор, ожидающий инструкций выполниться, как это - люди, ждущие своей очереди для еды.

В случае людей в Диснейленде, это позволяет им максимизировать их забава .

Думают о процессоре, принимающем инструкции. Каждая инструкция ожидает, чтобы быть выполненной в очереди, выполнить ее задачу. Теперь изменитесь, это †“предполагает, что каждая инструкция ждет своей очереди для не выполнения инструкции, но к добираются что-то от процессора †“, каждый раз, когда это поражает процессор, это вознаграждено золотой звездой, и ее задание состоит в том, чтобы накопить как можно больше из них.

Fastpass похож на разрешение инструкции пойти где-то в другом месте, к другому процессору, получить золотую звезду там, прежде, чем возвратиться назад к главному процессору для получения звезды золотых медалей от него.

В случае пользователей в Диснейленде, они интересуются весело проведением время †“накапливающий события поездки. Fastpass допускает максимизацию, позволяя пользователю найти другую поездку с более короткой строкой, таким образом, они могут накопиться больше в более короткое время.

72
задан Peter Mortensen 27 March 2014 в 18:35
поделиться

3 ответа

Одна вещь, которая очень распространена среди библиотек Unix, заключается в том, что они организованы таким образом, что:

./         Makefile and configure scripts.
./src      General sources
./include  Header files that expose the public interface and are to be installed
./lib      Library build directory
./bin      Tools build directory
./tools    Tools sources
./test     Test suites that should be run during a `make test`

Это в некоторой степени отражает традиционную файловую систему Unix под / usr где:

/usr/src      Sometimes contains sources for installed programs
/usr/include  Default include directory
/usr/lib      Standard library install path
/usr/share/projectname   Contains files specific to the project.

Конечно, они могут оказаться в / usr / local (который является префиксом установки по умолчанию для GNU autoconf), и они могут вообще не придерживаться этой структуры.

Здесь нет никаких жестких требований. быстрое правило. Я лично так не организовываю. (Я вообще избегаю использования каталога ./ src / , за исключением, например, самых крупных проектов. Я также не использую автоинструменты, отдавая предпочтение CMake.)

Я предлагаю вам, чтобы вы следует выбрать макет каталога, который имеет смысл для вас (и вашей команды). Делайте то, что наиболее разумно для выбранной вами среды разработки, инструменты сборки,

94
ответ дан 24 November 2019 в 12:44
поделиться

Я не думаю, что на самом деле есть какие-то хорошие рекомендации для этого. По большей части это просто личные предпочтения. Тем не менее, некоторые IDE определят для вас базовую структуру. Visual Studio, например, создаст отдельную папку bin, которая разделена на подпапки Debug и Release. В VS это имеет смысл, когда вы компилируете свой код с использованием разных целей. (Режим отладки, режим выпуска.)

Как сказано в greyfade, используйте макет, который вам понятен. Если кому-то это не нравится, им просто придется реструктурировать это самостоятельно. К счастью, большинству пользователей понравится выбранная вами структура. (Если только это не беспорядок.)

4
ответ дан 24 November 2019 в 12:44
поделиться

Я считаю, что библиотека wxWidgets (с открытым исходным кодом) является хорошим примером. Они поддерживают множество различных платформ (Win32, Mac OS X, Linux, FreeBSD, Solaris, WinCE ...) и компиляторы (MSVC, GCC, CodeWarrior, Watcom и т. Д.). Вы можете увидеть структуру дерева здесь:

https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk/

4
ответ дан 24 November 2019 в 12:44
поделиться
Другие вопросы по тегам:

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