Хотя есть несколько хороших кроссплатформенных библиотек (например, Boost), помните, что они, вероятно, не существуют по умолчанию. Это особенно проблематично, если вы отправляете только двоичные файлы. Целевая платформа вряд ли будет иметь библиотеку (или правильную версию библиотеки), которая вам нужна.
Первый приз - придерживаться стандарта C ++ (даже если вам нужно реализовать простые вещи самостоятельно). Это полностью исключает зависимость от библиотеки.
Если вам нужно использовать библиотеку, попробуйте статически связать ее (хотя это может создать большие двоичные файлы). Это позволит вам избежать сбоя во время выполнения из-за отсутствия двоичных файлов.
Если вам необходимо доставить DLL (или .so в некоторых Unix-системах), убедитесь, что с вашим продуктом поставляется правильная версия и каким-то образом можно избежать конфликтов с неправильной версией.
Если вы отправляете код, включите библиотеку с кодом и соберите библиотеку, а также свою утилиту.
Также остерегайтесь GPL и, возможно, кода LGPL. Если вы выпускаете библиотеку с зависимостью GPL (или изменяете библиотеку LGPL), вам нужно будет предоставить код и разрешить его повторное распространение в соответствии с GPL.