Лучший подход для общей функциональности - PullRequest
0 голосов
/ 28 августа 2009

Я собрал несколько общих модулей, которые до сих пор хранил в одном каталоге и ссылался на каталоги проектов, которые в них нуждаются.

Мне было интересно, есть ли лучший способ сделать это?

Как общие модули, так и код, использующий их, написаны на C ++.

Ответы [ 3 ]

3 голосов
/ 28 августа 2009

Я бы предложил создать статическую библиотеку и связать ее с ней. Это намного проще, чем DLL, вам не нужно беспокоиться о версиях, и все вы работаете с ними так же, как с обычными модулями.

РЕДАКТИРОВАТЬ: По сути, статическая библиотека представляет собой набор объектных файлов. Если вы работаете с Visual Studio, вы можете создать статический проект библиотеки (или изменить тип вывода вашего проекта), который создаст файл .lib, который вы можете связать в своем приложении. Если вы используете GCC, вы можете использовать «ar» для создания файла библиотеки из набора файлов .o и снова связать его с вашим приложением.

1 голос
/ 28 августа 2009

Управление и улучшение вашего частного набора инструментов - важная вещь для программиста. Лично я всегда придерживаюсь подхода «максимально быстро и легко».

Чем быстрее они связаны и включены в мою работу, тем скорее я чувствую себя "как дома". Я даже иногда отбрасываю все строки порядка и добавляю их в библиотеку по умолчанию и включаю пути, и вот так, к вашим услугам. (Конечно, не рекомендую, но это быстро и просто)

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

Совет: сделайте из них отдельный проект. Имейте их в центральном логическом местоположении. (Может быть, myWorkspace / MyLibs) Поскольку ваш набор инструментов, вероятно, будет расти / изменяться / улучшаться с каждым проектом, над которым вы работаете, я иногда настраиваю свою рабочую среду, чтобы иметь возможность быстро переключаться, добавлять что-то и затем возвращаться к исходному проекту. В этом случае полезно включить его в качестве зависимости проекта в вашу среду IDE, которую можно построить автоматически, а затем повторно связать. Это тривиально почти со всеми IDE.

Другая проблема, однако, работодатели. Они обычно настороженно относятся к вещам, которые вы переносите в свои проекты. Особенно, если вы хотите закрыть им источник. Но это история для другого вопроса;)

0 голосов
/ 28 августа 2009

Мне нравится помещать их в DLL, чтобы размер моего исполняемого файла становился меньше.

...