Приложение C ++ - использовать ли статические или динамические ссылки для библиотек?

Я собираюсь начать новый проект C ++, который будет опираться на ряд библиотек, включая часть библиотек Boost, log4cxx или библиотеку журналов google, а также по мере развития проекта и других (что я пока не могу предвидеть) ,

Он должен работать как на 32, так и на 64-битных системах, скорее всего, в довольно разнообразной среде Linux, где я не ожидаю наличия всех необходимых библиотек или привилегий su.

Мой вопрос заключается в том, должен ли я создавать свое приложение путем динамического или статического связывания со всеми этими библиотеками?

Примечания:

(1) Я знаю, что статическое связывание может быть проблемой во время разработки (более длительное время компиляции, кросс-компиляция для 32- и 64-битных систем, переход по цепочке зависимостей для включения всех библиотек и т. Д.), Но во время тестирования это намного проще - просто переместите файл и запустите.

(2) С другой стороны, динамическое связывание швов легче на этапе разработки - короткое время компиляции (не знаю, как обрабатывать динамическое связывание с 64-битными библиотеками из моей 32-битной среды разработки), нет суеты с цепочками зависимостей. С другой стороны, развертывание новых версий может быть уродливым, особенно когда требуются новые библиотеки (см. Выше условие об отсутствии прав su на целевых компьютерах или недоступности этих библиотек).

(3) Я прочитал соответствующие вопросы по этой теме, но не мог понять, какой подход лучше всего подходит для моего сценария.

Выводы:

Спасибо всем за ваш вклад!Я, вероятно, пойду со статической связью, потому что:Более простое развертываниеПредсказуемая производительность и более стабильные результаты во время перф. тестирование (посмотрите на этот документ: http://www.inf.usi.ch/faculty/hauswirth/publications/CU-CS-1042-08.pdf)Как уже указывалось, размер и продолжительность компиляции статических и динамических не кажутся такой большой разницейБолее простые и быстрые циклы испытанийЯ могу держать всех разработчиков. цикл на моем устройстве машина

Ответы на вопрос(4)

Ваш ответ на вопрос