Лучший подход для общей функциональности

StackOverflow https://stackoverflow.com/questions/1345885

  •  20-09-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top